簡體   English   中英

如何計算過去同一時間間隔的記錄數?

[英]How to count number of records on the same time interval in past?

我們有兩個輸入格式為'YYYY-mm-dd' DATE_FROMDATE_TO ,問題是要計算[DATE_FROM, DATE_TO)[DATE_FROM -INTERVAL(DATE_TO,DATE_FROM), DATE_FROM)期間的記錄數。

為了計算第一個間隔中的記錄數,我們執行以下查詢

SELECT 
    count(*) as num_records
FROM mytable
WHERE 
    mytable.date_doc >= 'DATE_FROM 00:00:00'
AND mytable.date_doc <= 'DATE_TO 23:59:59'

在這里,日期加上午夜小時:分鍾:秒,以將邊界上日期的所有記錄堆積起來。

如何構造第二個時間間隔執行相同計數的查詢?

是否可以在對數據庫的一個查詢中做到這一點,或提出任何最佳的實現方式?

編輯

間隔1(10天):DATE_FROM ='2012-11-03 00:00:00',DATE_TO ='2012-11-12 23:59:59'

間隔2(10天):DATE_FROM ='2012-10-24 00:00:00',DATE_TO ='2012-11-02 23:59:59'

SELECT 
   SUM(IF(DATE(mytable.date_doc) BETWEEN '2012-11-03 00:00:00' AND '2012-11-12 23:59:59', 1, 0)) AS count_interval1,
   SUM(IF(DATE(mytable.date_doc) BETWEEN '2012-10-24 00:00:00' AND '2012-11-03 00:00:00', 1, 0)) AS count_interval2
FROM mytable

感謝您的專業知識!

嘗試這個:

SELECT 
   SUM(IF(DATE(mytable.date_doc) BETWEEN '2012-11-03' AND '2012-11-12', 1, 0)) AS count_interval1,
   SUM(IF(DATE(mytable.date_doc) BETWEEN SUBDATE('2012-11-03', DATEDIFF('2012-11-12', '2012-11-03') + 1) AND SUBDATE('2012-11-03', 1), 1, 0)) AS count_interval2
FROM mytable

無需指定時間。

暫無
暫無

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

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