[英]SQL Query to show highest sales in a City for EACH State
SELECT c.STATE, c.CITY, SUM(s.QTY * s.SALEPRICE)
FROM DWSALE s
INNER JOIN DWCUST c
ON s.dwcustid = c.dwcustid
GROUP BY c.STATE, c.CITY
ORDER BY c.STATE;
上面的當前查詢顯示了每個城市的總銷售額(銷售額=數量*售價),同時還顯示了其所在的州。
客戶(在DWCUST中找到)居住在城市和州。 銷售記錄在DWSALE中,並保存銷售信息。
我需要查詢以顯示其各州EACH銷售額最高的城市。 我不確定該怎么辦。
任何幫助表示贊賞!
您可以使用ROW_NUMBER()
或RANK()
來獲取所需的內容:
SELECT state, city, total
FROM (SELECT c.STATE, c.CITY, SUM(s.QTY * s.SALEPRICE) as total,
ROW_NUMBER() OVER (PARTITION BY c.STATE ORDER BY SUM(s.QTY * s.SALEPRICE)) as seqnum
FROM DWSALE s INNER JOIN
DWCUST c
ON s.dwcustid = c.dwcustid
GROUP BY c.STATE, c.CITY
) sc
WHERE seqnum = 1
ORDER BY STATE;
如果需要平局(同一狀態有多行),請使用RANK()
而不是ROW_NUMBER()
。
with statecitytotal as
(SELECT c.STATE, c.CITY, SUM(s.QTY * s.SALEPRICE) total
FROM DWSALE s
INNER JOIN DWCUST c
ON s.dwcustid = c.dwcustid
GROUP BY c.STATE, c.CITY
ORDER BY c.STATE)
select * from (select state, city, total, rank() over(partition by state order by total desc) rnk from statecitytotal) where rnk=1
但是,如果兩個城市的總數相同,則都將顯示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.