我試圖通過 Sales 獲得前 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;
這給了我以下結果:
| 投標 | START_PRICE |
|---|---|
| 7 | 75 |
| 6 | 50 |
| 4 | 30 |
| 1 | 16 |
| 1 | 15 |
我需要的是:
| 投標 | START_PRICE |
|---|---|
| 7 | 75 |
| 6 | 50 |
| 1 | 31 |
| 4 | 30 |
我試圖僅按 ID 分組,但它不起作用,因為 v_preis 也必須在那里。
1 的價格是兩次 8 次和一次 15 次,所以我想我在為一個結果使用不同的行時遇到了問題。
我對 SQL 還很陌生,所以如果這是一個愚蠢的問題,我很抱歉,在此先感謝您!
uj5u.com熱心網友回復:
您是否嘗試使用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;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387419.html
