簡體   English   中英

MS SQL Server(如何根據count(*)和日期獲取記錄

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

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