【发布时间】:2016-09-14 13:55:38
【问题描述】:
我正在为下面的选择使用图表报告。 MySQL 数据库只有数据库中的活动记录,因此如果数据库中从 X 小时到 Y 小时没有记录,则选择不会返回任何内容。因此,就我而言,即使数据库中没有任何活动,我也需要选择返回 Paypal 零值。而且我不明白如何使用UNION 函数或重新创建选择以获取零值,如果在时间间隔内没有记录在数据库中。你能帮忙吗?
select STR_TO_DATE ( DATE_FORMAT(`acctstarttime`,'%y-%m-%d %H'),'%y-%m-%d %H')
as '#date', count(*) as `Active Paid Accounts`
from radacct_history where `paymentmethod` = 'PayPal'
group by DATE_FORMAT(`#date`,'%y-%m-%d %H')
当我运行选择时,输出是:
但是如果在 2016-07-27 07:00:00 和 2016-07-28 11:00:00 之间没有值,那么我需要每小时显示零活跃帐户像这样:
Needed output with no values every hour
我在下面创建了这样的选择,但它并没有像我需要的那样每小时都设置零值。无论如何都显示了 9 月 12 日和 9 月 13 日之间的巨大差距,但每小时应该有零值
(select STR_TO_DATE (DATE_FORMAT(acctstarttime,'%y-%m-%d %H'),'%y-%m-%d %H')
作为'#date',计数(支付方式)为Active Paid Accounts
来自 radacct_history 其中paymentmethod 'PayPal'
按 DATE_FORMAT(#date,'%y-%m-%d %H')) 分组
联合所有
(选择STR_TO_DATE (DATE_FORMAT(acctstarttime,'%y-%m-%d %H'),'%y-%m-%d %H')
作为'#date',0 作为Active Paid Accounts
来自 radacct_history 其中paymentmethod 'PayPal'
按 DATE_FORMAT(#date,'%y-%m-%d %H')) 分组;
【问题讨论】:
-
样本数据和所需的输出将非常有助于尽快获得适当的答案。
-
我已经在我的回答中上传了输出。谢谢
标签: mysql sql gaps-and-islands