我想按日期对数据进行分组并在图表上查看。这是我的数据示例:
count created_at
----- ----------
5 2020/04/20
4 2020/04/21
3 2020/04/25
9 2020/04/28
在获取数据时我希望我的数据
count created_at
----- ----------
5 2020/04/20
4 2020/04/21
0 2020/04/22
0 2020/04/23
0 2020/04/24
3 2020/04/25
0 2020/04/26
0 2020/04/27
9 2020/04/28
当该日期没有数据时,它将显示为0。你们可以帮我如何在laravel控制器上获取它吗?
谢谢。
答案 0 :(得分:0)
@Alun这是如何执行此操作的示例:
const AWS = require('/usr/local/lib/node_modules/aws-sdk');
只需在此查询中用您的表名代替qemu-system-aarch64 -cdrom "C:\Users\GHU0002\Downloads\openSUSE-Tumbleweed-NET-aarch64-Snapshot20200421-Media.iso" -drive file=Drive.qcow2 -m 2G -smp 4 -machine sbsa-ref -usbdevice tablet -net nic -net user -accel tcg,thread=multi -vga xenfb -display gtk
(从表中修改日期列名,相应地替换为SELECT `dateList`.`Date`,
CASE WHEN `yt`.`date` IS NULL THEN 0
ELSE COUNT(`yt`.`id`)
END AS `amt`
FROM
-- this is the part you can copy/paste
-- to be used to left join in a table of your choice
-- ---------------------------------------------------------------------------------------------------------------------------
(
SELECT `a`.`Date`
FROM (
SELECT NOW() - INTERVAL (`a`.`a` + (10 * `b`.`a`) + (100 * `c`.`a`)) DAY AS `Date`
FROM (SELECT 0 AS `a` UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS `a`
CROSS JOIN (SELECT 0 AS `a` UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS `b`
CROSS JOIN (SELECT 0 AS `a` UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS `c`
) AS `a`
WHERE `a`.`Date` BETWEEN '2020-04-01' AND NOW()
) AS `dateList`
-- ---------------------------------------------------------------------------------------------------------------------------
LEFT JOIN `yourTable` AS `yt` ON `dateList`.`Date` = DATE(`yt`.`date`)
GROUP BY `dateList`.`Date`
ORDER BY `dateList`.`Date` ASC
),这将为您提供每月显示的列表,显示没有任何价值的月份中的任何一天为0。
就可以在Laravel控制器中使用雄辩的方法使它起作用,但是我不知道该怎么做。您可以在控制器中使用此原始SQL来完成所需的操作。
Here's an example of how it works in sql fiddle.
希望这会有所帮助!