使用在線 SQLite 編輯器的一般 SQL 問題,如果我有下表:
| 物品 | 星期 | 銷售量 |
|---|---|---|
| 專案1 | 1 | 35 |
| 專案2 | 1 | 25 |
| 第 3 項 | 1 | 24 |
| 專案1 | 2 | 35 |
| 專案2 | 2 | 34 |
| 專案1 | 3 | 24 |
| 專案2 | 3 | 45 |
| 專案1 | 4 | 44 |
| 專案2 | 4 | 51 |
| 專案1 | 5 | 1 |
| 第 3 項 | 5 | 100 |
我怎樣才能得到這樣的輸出:
| 物品 | 周 | 總銷售額 |
|---|---|---|
| 專案1 | 1-2 | 70 |
| 專案2 | 3-4 | 96 |
| 第 3 項 | 5 | 100 |
更具體地說,我將如何(如果可能)將周顯示為一個范圍(“第 1-2 周”甚至“第 1 周、第 2 周”),而不僅僅是“第 1 周”,其中范圍是周該商品每周的銷售額最高?
我一直在處理的一些代碼如下:
SELECT item,
SUM(sales) OVER (
PARTITION BY week order by item) AS total_sales
FROM TABLE1
GROUP BY item;
上面的代碼讓我得到了一周的總銷售額或總銷售額,但我完全不知道如何將一周作為一個范圍。
任何幫助或澄清表示贊賞。示例代碼
uj5u.com熱心網友回復:
您可以使用CASE運算式來創建范圍并按該運算式和分組item:
SELECT item,
CASE
WHEN week <= 2 THEN '1-2'
WHEN week <= 4 THEN '3-4'
WHEN week <= 5 THEN '5'
ELSE '>5'
END weeks,
SUM(sales) total_sales
FROM table1
GROUP BY item, weeks;
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/467191.html
上一篇:為什么此SQLite查詢中的GROUP_CONCAT在最新版本中不起作用?
下一篇:System.Runtime.InteropServices.InvalidComObjectException:嘗試使用Microsoft.Office.Interop.Excel寫入Excel單元
