簡體   English   中英

從TIMESTAMP字段MYSQL創建按日期和小時細分

[英]Create a by Date and hour breakdown from TIMESTAMP field MYSQL

我正在嘗試創建一個查詢,該查詢按日期和小時提供ids細分,其中空白顯示為零。

到目前為止,這是MYSQL查詢:

SELECT DATE(received),
  CONCAT(hourly.hour, ':00 - ', hourly.hour+1, ':00') AS Hours,  
  COALESCE(COUNT(id),0) AS "Leads"
FROM hourly
LEFT JOIN digital_lead ON hourly.hour=hour(digital_lead.received)
WHERE 
  digital_lead.received>=DATE_SUB('2014-11-01', INTERVAL 24 HOUR) AND
  digital_lead.received<=DATE_SUB('2014-11-26', INTERVAL 24 HOUR) 
GROUP BY DATE(received), hourly.hour
ORDER BY DATE(received)

我有一個組成hourly表的從0到23的整數表。

目前,此查詢僅顯示結果存在的時隙-像這樣:

DATE(received)       Hours  Leads
2014-11-12           11:00 - 12:00  23
2014-11-12           12:00 - 13:00  19
2014-11-12           13:00 - 14:00  18
2014-11-12           14:00 - 15:00  17
2014-11-12           15:00 - 16:00  23
2014-11-12           16:00 - 17:00  13
2014-11-12           17:00 - 18:00  17

查詢應顯示從00:00 - 11:00的時隙的零結果,而不是從查詢結果中漏掉它們。 似乎是在忽略COALESCE函數,我嘗試用IFNULL(COUNT(id), 0)來代替它,沒有區別。

我已經嘗試過此問題/答案中的解決方案-STACKOVERFLOW LINK

但是,這對我不起作用。

有什么建議么?

編輯

這是SQL FIDDLE,以獲取更多詳細信息

好的,這花了一些時間。 這是我最好的想法。 也許有更好的方法,但是加入時丟失的日期或時間總是很復雜。 我沒有給出與失蹤日期有關的答案 ,但這是完全不同的。

因此,使用相同的想法,我在查詢中做了一些更改以檢索數據,如下所示

select
t1.date_received,
t1.Hours,
COALESCE(t2.`Leads`,0) as `Leads`
from
(
  select
  distinct DATE(received) as date_received,
  concat (DATE(received),'-',h.hour) as date_hour,
  CONCAT(h.hour, ':00 - ', h.hour+1, ':00') AS Hours 
  from digital_lead
  cross join (select hour from hourly)h
)t1
left join
(
  SELECT DATE(received) as date_received,
  concat (DATE(received),'-',hour) as date_hour,
  CONCAT(hourly.hour, ':00 - ', hourly.hour+1, ':00') AS Hours,  
  COALESCE(COUNT(id),0) AS "Leads"
  FROM hourly
  LEFT JOIN digital_lead ON hourly.hour=hour(digital_lead.received)
  and digital_lead.received>=DATE_SUB('2014-11-01', INTERVAL 24 HOUR)
  and digital_lead.received<=DATE_SUB('2014-11-26', INTERVAL 24 HOUR) 
  GROUP BY DATE(received), hourly.hour
)t2
on t1.date_hour = t2.date_hour
order by t1.date_received,
cast(substring_index(t1.Hours,':',1) as unsigned)

小提琴

暫無
暫無

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

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