当乘以不同的价格时,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;
我正在努力获得销售额前 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;