我有以下銷售表,其中顯示了客戶 ID、他們的姓名、訂單金額和訂單日期。
| ID | 名稱 | 命令 | 日期 |
|---|---|---|---|
| 1 | 一個 | 25 | 2006 年 11 月 10 日 |
| 1 | 一個 | 10 | 2010 年 5 月 25 日 |
| 1 | 一個 | 10 | 2018 年 6 月 18 日 |
| 2 | 乙 | 20 | 2008 年 3 月 31 日 |
| 2 | 乙 | 15 | 2010 年 11 月 15 日 |
| 3 | C | 35 | 2019 年 1 月 1 日 |
| 3 | C | 20 | 2007 年 4 月 12 日 |
| 3 | C | 10 | 2010 年 3 月 20 日 |
| 3 | C | 5 | 2012 年 10 月 19 日 |
| 4 | D | 15 | 2013 年 12 月 12 日 |
| 4 | D | 15 | 2010 年 2 月 18 日 |
| 5 | 乙 | 25 | 2006 年 12 月 11 日 |
| 6 | F | 10 | 2016 年 5 月 1 日 |
我正在嘗試對資料進行分組,以便對于每個客戶,它只會向我顯示他們最近的訂單和金額,如下所示:
| ID | 名稱 | 命令 | 日期 |
|---|---|---|---|
| 1 | 一個 | 10 | 2018 年 6 月 18 日 |
| 2 | 乙 | 15 | 2010 年 11 月 15 日 |
| 3 | C | 35 | 2019 年 1 月 1 日 |
| 4 | D | 15 | 2013 年 12 月 12 日 |
| 5 | 乙 | 25 | 2006 年 12 月 11 日 |
| 6 | F | 10 | 2016 年 5 月 1 日 |
到目前為止,我只能按 ID 和名稱進行分組,因為添加 Order 列也會按該列進行分組。
SELECT
ID,
Name,
MAX(Date) 'Most recent date'
FROM Table
GROUP BY Customer, Customer
我怎樣才能為每個客戶添加訂單金額?
uj5u.com熱心網友回復:
SELECT ID, Name, Order, Date FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Date DESC) AS sn
FROM your_table_name
) A WHERE sn = 1;
uj5u.com熱心網友回復:
您可以使用 subqoery 來獲取最大日期 SELECT ID, Name, MAX(Date) 'Most recent date' FROM Table GROUP BY Customer, Customer
select a.ID, a.Name, b.max_date
from Table a
inner join (
select name, max(Date) max_date
from Table
group by name
) b on a. name = b.name and a.date = b.max_date
uj5u.com熱心網友回復:
您可以使用此查詢來獲得預期的結果:
SELECT S.*
FROM Sales S
CROSS APPLY
(
SELECT ID, Max(Date) MaxDate
FROM Sales
GROUP BY ID
)T
WHERE S.ID = T.ID
AND S.Date = T.MaxDate
ORDER BY S.ID
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/411049.html
標籤:
