我在這裏是新來的,因爲我剛剛跳入深入瞭解(小孩池)學習SQL select查詢。我有這樣的SQL開發人員提出查詢:在查詢中限制結果MAX()仍然返回多行
select
prod_prices.store_ID,
prod_prices.prod_ID,
prod_prices.supp_ID,
MAX(prod_prices.promo_price) AS max_promo_price,
prod_prices.sell_price,
MAX(prod_prices.start_date) AS max_start_date
FROM
prod_prices
WHERE
prod_prices.store_ID = 3
AND
prod_prices.supp_ID = 1178
GROUP BY
prod_prices.store_ID,
prod_prices.prod_ID,
prod_prices.supp_ID,
prod_prices.sell_price
HAVING
MAX(prod_prices.start_date) > '16.04.17'
AND
MAX(prod_prices.start_date) < '17.05.17'
返回:
"store_ID" "prod_ID" "supp_ID" "MAX_promo_price" "sell_price" "start_date"
3 121752 1178 2 0,88 16.05.17
3 121752 1178 2 0,76 16.05.17
3 121754 1178 1 0,45 16.05.17
3 121756 1178 1 0,45 16.05.17
3 121758 1178 2 0,96 16.05.17
3 121758 1178 2 0,76 15.05.17
3 121760 1178 1 0,54 16.05.17
3 121762 1178 1 0,41 16.05.17
3 121764 1178 1 0,37 16.05.17
3 121766 1178 1 0,34 16.05.17
3 121773 1178 2 0,83 16.05.17
3 121773 1178 2 0,65 16.05.17
3 121777 1178 1 0,98 16.05.17
3 121779 1178 2 0,88 16.05.17
3 121779 1178 2 0,89 24.04.17
由於產品代碼能在每一個最新的起始日期多個條目由於promo_price(1 =普通,2 =銷售價格)和卡路里的原因,我需要縮小這一點,所以任何獨特的prod_ID將只有一個條目(最高的start_date,最高的promo_price)。 不幸的是,我不太瞭解如何通過查詢來實現row_number()或分區等,我非常感謝您的幫助。如果有什麼好的學習資源,我也會對它們進行Appreacite!
最高的促銷價格或最高的賣價?因爲最高的promo_price始終爲2(1 =常規,2 =銷售價格)? –