我正在嘗試按或可能按組進行復雜的訂購,然后按訂購。表名是 curtomer_updates。我想要它做的首先是按 last_updated_date 的降序排序,然后有一個唯一的 cust_id 一起按 last_updated_date 排序。以下是當前情況和預期結果的示例。感謝您的任何幫助。
表正常排序
| 更新_ID | 客戶 ID | 欄位更新 | 上次更新日期 | 更新人 |
|---|---|---|---|---|
| 1 | 1223 | 姓名 | 2021-11-01 12:23 | 弗羅多·巴金斯 |
| 2 | 9999 | 地址 | 2021-12-02 19:23 | 萊戈拉斯 |
| 3 | 2200 | 電話 | 2021-12-03 23:00 | 比爾博·巴金斯 |
| 4 | 2200 | 姓名 | 2022-01-04 02:23 | 比爾博·巴金斯 |
| 5 | 9999 | 電話 | 2022-02-05 12:23 | 咕嚕 |
| 6 | 9999 | 地址 | 2022-03-06 20:00 | 索倫 |
| 7 | 1223 | 地址 | 2022-04-07 01:24 | 甘道夫 |
| 8 | 2200 | 電子郵件 | 2022-05-08 12:50 | 一些烏爾凱 |
| 9 | 3412 | 電子郵件、電話 | 2022-06-08 08:45 | 咕嚕 |
| 10 | 1223 | 地址 | 2022-07-10 00:23 | 皮平 |
| 11 | 3412 | 電子郵件地址 | 2022-09-22 16:48 | 甘道夫 |
預期結果
| 更新_ID | 客戶 ID | 欄位更新 | 上次更新日期 | 更新人 |
|---|---|---|---|---|
| 11 | 3412 | 電子郵件地址 | 2022-09-22 16:48 | 甘道夫 |
| 9 | 3412 | 電子郵件、電話 | 2022-06-08 08:45 | 咕嚕 |
| 10 | 1223 | 地址 | 2022-07-10 00:23 | 皮平 |
| 7 | 1223 | 地址 | 2022-04-07 01:24 | 甘道夫 |
| 1 | 1223 | 姓名 | 2021-11-01 12:23 | 弗羅多·巴金斯 |
| 8 | 2200 | 電子郵件 | 2022-05-08 12:50 | 一些烏爾凱 |
| 4 | 2200 | 姓名 | 2022-01-04 02:23 | 比爾博·巴金斯 |
| 3 | 2200 | 電話 | 2021-12-03 23:00 | 比爾博·巴金斯 |
| 6 | 9999 | 地址 | 2022-03-06 20:00 | 索倫 |
| 5 | 9999 | 電話 | 2022-02-05 12:23 | 咕嚕 |
| 2 | 9999 | 地址 | 2021-12-02 19:23 | 萊戈拉斯 |
uj5u.com熱心網友回復:
SELECT *
FROM curtomer_updates
ORDER BY
MAX(Last_updated_date) OVER (PARTITION BY cust_id) DESC
,Last_updated_date DESC
使用樣本集:
SELECT *
FROM ( VALUES
(1,1223, 'Name', '2021-11-01 12:23', 'Frodo Baggins'),
(2,9999, 'address', '2021-12-02 19:23', 'Legolas'),
(3,2200, 'phone', '2021-12-03 23:00', 'Bilbo Baggins'),
(4,2200, 'Name', '2022-01-04 02:23', 'Bilbo Baggins'),
(5,9999, 'phone', '2022-02-05 12:23', 'Golum'),
(6,9999, 'address', '2022-03-06 20:00', 'Sauron'),
(7,1223, 'address', '2022-04-07 01:24', 'Gandalf'),
(8,2200, 'email', '2022-05-08 12:50', 'Some Urkai'),
(9,3412, 'email, phone', '2022-06-08 08:45', 'Golum'),
(10,1223, 'address', '2022-07-10 00:23', 'Pippin'),
(11,3412, 'email, address', '2022-09-22 16:48', 'Gandalf')
)sub(Update_ID, Cust_Id , Field_updated , Last_updated_date, Updated_by)
ORDER BY
MAX(Last_updated_date) OVER (PARTITION BY cust_id) DESC
,Last_updated_date DESC
回報:
Update_ID Cust_Id Field_updated Last_updated_date Updated_by
----------------------------------------------------------------------------------
11 3412 email, address 2022-09-22 16:48 Gandalf
9 3412 email, phone 2022-06-08 08:45 Golum
10 1223 address 2022-07-10 00:23 Pippin
7 1223 address 2022-04-07 01:24 Gandalf
1 1223 Name 2021-11-01 12:23 Frodo Baggins
8 2200 email 2022-05-08 12:50 Some Urkai
4 2200 Name 2022-01-04 02:23 Bilbo Baggins
3 2200 phone 2021-12-03 23:00 Bilbo Baggins
6 9999 address 2022-03-06 20:00 Sauron
5 9999 phone 2022-02-05 12:23 Golum
2 9999 address 2021-12-02 19:23 Legolas
uj5u.com熱心網友回復:
你可以做:
select t.*
from customer_updates t
join (
select cust_id, dense_rank() over(order by max(last_updated_date)) as rk
from customer_updates
group by cust_id
) x on x.cust_id = t.cust_id
order by x.rk desc, t.last_updated_date desc
結果:
update_id Cust_Id Field_updated Last_updated_date Updated_by
---------- -------- --------------- ------------------ -------------
11 3412 email, address 2022-09-22 16:48 Gandalf
9 3412 email, phone 2022-06-08 08:45 Golum
10 1223 address 2022-07-10 00:23 Pippin
7 1223 address 2022-04-07 01:24 Gandalf
1 1223 Name 2021-11-01 12:23 Frodo Baggins
8 2200 email 2022-05-08 12:50 Some Urkai
4 2200 Name 2022-01-04 02:23 Bilbo Baggins
3 2200 phone 2021-12-03 23:00 Bilbo Baggins
6 9999 address 2022-03-06 20:00 Sauron
5 9999 phone 2022-02-05 12:23 Golum
2 9999 address 2021-12-02 19:23 Legolas
請參閱db<>fiddle的運行示例。
uj5u.com熱心網友回復:
SELECT * FROM curtomer_updates ORDER BY last_updated_date, cust_id DISC;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/527554.html
標籤:sqlsql服务器
上一篇:在Django-Rest-Framework中使用Url內的多個引數檢索物件
下一篇:基于相同的列值Sql創建列的排列
