[英]How to count number of records on the same time interval in past?
我們有兩個輸入格式為'YYYY-mm-dd'
DATE_FROM
和DATE_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.