簡體   English   中英

Sql 查詢+獲取每個月的前2條記錄

[英]Sql Query + fetch first 2 records of every month

我有一大組以日期為主鍵的數據,大部分時間都會有記錄。 是否可以編寫一個 SQL 查詢來獲取每個月前 2 天的記錄?

例如,該表可能包含 1 月 1 日至 31 日的數據,但包含 2 月 3 日至 25 日的數據。 在這種情況下,查詢需要獲取 1 月 1 日和 2 日以及 2 月 3 日和 4 日的記錄。

我可以想到一個程序來做同樣的事情。 否則,可以在服務器端 PHP 腳本中獲取記錄並處理過濾。 但我認為在 SQL 中做到這一點並不容易。

感謝您的幫助。 謝謝。

(Mysql 版本: 8)

您可以使用 ROW_NUMBER()。 例如假設d是日期列

select * 
from (
   select *, row_number() over(partition by Year(d), Month(d) order by Day(d)) n
   from yourtable
) t
where n <=2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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