簡體   English   中英

SQL查詢顯示每個州的城市最高銷售額

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM