Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 每天计算不同列值的数量_Mysql - Fatal编程技术网

Mysql 每天计算不同列值的数量

Mysql 每天计算不同列值的数量,mysql,Mysql,我有一张桌子: `tasks` (`id`, `url_id`, `task`, `date`) 任务可以获取值:1、2、3。日期是unix时间戳。在url_id=1的情况下,如何获取表示每天执行多少任务的数据。预期结果是: {`count_task_1`: 30, `count_task_2`: 14, `count_task_3`: 30, `date`='2011-03-12'}, [..] 类似的内容将为我提供当天url_id=1的所有条目数: 我看到的唯一选项是:多个查询或几乎相同

我有一张桌子:

`tasks` (`id`, `url_id`, `task`, `date`)
任务可以获取值:1、2、3。日期是unix时间戳。在url_id=1的情况下,如何获取表示每天执行多少任务的数据。预期结果是:

{`count_task_1`: 30, `count_task_2`: 14, `count_task_3`: 30, `date`='2011-03-12'}, [..]
类似的内容将为我提供当天url_id=1的所有条目数:

我看到的唯一选项是:多个查询或几乎相同的子查询。

感谢jink帮助我解决了这个问题

SELECT `task`, COUNT(`id`) `count`, DATE(FROM_UNIXTIME(`date`)) `date` FROM `tasks` WHERE `url_id`=3 GROUP BY `task`, DATE(FROM_UNIXTIME(`date`));

可以使用此高性能技巧以不同的值为轴心旋转:

SELECT
    SUM(task_id = 1) as count_task_1,
    SUM(task_id = 2) as count_task_2,
    SUM(task_id = 3) as count_task_3,
    DATE(FROM_UNIXTIME(`date`)) as date
FROM tasks
WHERE url_id=1
GROUP BY 4;

这是因为在mysql和许多其他数据库中,true为1,false为0,所以条件的总和就是它为true的计数。

你太离谱了。这甚至没有给出所要求的专栏。你还没有解决任何问题:问题是需要一个支点。
SELECT
    SUM(task_id = 1) as count_task_1,
    SUM(task_id = 2) as count_task_2,
    SUM(task_id = 3) as count_task_3,
    DATE(FROM_UNIXTIME(`date`)) as date
FROM tasks
WHERE url_id=1
GROUP BY 4;