[英]MS SQL Server ( How to fetch record based on count(*) and date
我在MS SQL Server中有要求,請按count獲取一組關鍵字order,如果count值應與最新計數相同,
表-字段
id, keyword, datetime
詢問
SELECT
keywords,count( * ) as count
FROM
xyztable
GROUP BY
keywords
ORDER BY
count( * )
在這里,如果計數相同的關鍵字,它應該按日期時間排序
謝謝,MK。
將您的ORDER BY更改為:
ORDER BY count(*) DESC,datetime DESC
您可以按順序排列多列,並且可以按放置順序對它們進行排名。 在這種情況下,你為了首先由count(*)
然后,用相同的那些count(*)
被訂購datetime
。
編輯:
重新閱讀您的問題,我發現我並不完全准確。 是的,您可以按多列排序,但是在這種情況下,您那里有一個匯總函數( COUNT(*)
),因此這將給您帶來錯誤,除非您也將datetime
放在group by
。
我認為這是您要尋找的:
SELECT keywords, count( * ) counts
FROM t
GROUP BY keywords
ORDER BY count( * ), max(date) desc
樣本數據:
create table t(keywords varchar(50), date date)
insert into t values
('x','20130901'),('x','20130904'),
('y','20130901'),('y','20130902'),('y','20130903'),
('z','20130903'),('z','20130906')
結果( 小提琴演示 ):
| KEYWORDS | COUNTS | MAXDATE |
-----------|--------|------------|--
| z | 2 | 2013-09-06 |
| x | 2 | 2013-09-04 |
| y | 3 | 2013-09-03 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.