当乘以不同的价格时,ID 在查询中出现两次

ID appears twice in query when multiplied with different Prices

我正在努力获得销售额前 5 名的电台, 但是我运行遇到一个问题,如果乘以不同的价格,一个站会出现两次。

这是我的查询:

SELECT distinct b_id, count(t_start_id) * v_preis AS START_PRICE
  FROM bahnhof
 INNER JOIN tickets
    ON t_start_id = b_id
 INNER JOIN connections
    ON t_connection_id = v_id
 GROUP BY b_id, v_preis
 ORDER BY START_PRICE DESC LIMIT 5;

这给了我以下结果:

b_id START_PRICE
7 75
6 50
4 30
1 16
1 15

不过我需要的是:

b_id START_PRICE
7 75
6 50
1 31
4 30

我尝试仅按 ID 分组,但它不起作用,因为 v_preis 也必须在其中。

1 的价格是 8 两次和 15 一次,所以我想我对一个结果使用不同的行有问题。

我是 SQL 的新手,如果这是一个愚蠢的问题,我很抱歉, 提前谢谢你!

您是否尝试过使用 SUM() 聚合以及仅 按 id 分组?

SELECT DISTINCT b_id, SUM(v_preis) AS start_price
  FROM bahnhof
  JOIN tickets
    ON t_start_id = b_id
  JOIN connections
    ON t_connection_id = v_id
 GROUP BY b_id
 ORDER BY START_PRICE DESC 
 LIMIT 5;