php - 按日期和值分组

标签 php mysql

我在名为 articles 的表中有 4 列:created_at、articles、keyword 和 category

我有这个查询来分析数据:

SELECT DATE(`created_at`) AS date, COUNT(1) AS articles 
FROM articles 
WHERE `keyword`='keyword1' 
GROUP BY DATE(`created_at`)

这会返回一个关键字每天的文章总数。

我想要一个总数,然后将其分解并将文章分类为每个关键字的 cat1cat2cat3 .所以给出这样的表格:

|date|keyword|articles|cat1|cat2|cat3| 

虽然我似乎无法做到这一点,所以我们将不胜感激!

最佳答案

select 
DATE(`created_at`),
keyword,
count(*) as TotalCount,
SUM (case when Category = Cat1 then 1 else 0 end) as Cat1Count,
SUM (case when Category = Cat2 then 1 else 0 end) as Cat2Count,
SUM (case when Category = Cat3 then 1 else 0 end) as Cat3Count

from articles
group by DATE(`created_at`), keyword
order by DATE(`created_at`), keyword

关于php - 按日期和值分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14521043/

相关文章:

mysql - 在 mysql 中搜索具有变音符号的阿拉伯语单词

mysql - 统计有多少用户在线的查询不起作用

javascript - jQuery 弹出窗口 (bPopup) 无法加载 iFrame

php - 在 foreach 循环中为二维数组赋值

php - 在嵌套循环中使用数组耗尽内存

mysql - 在 phpMyAdmin 中,约束在编辑或插入时导致奇怪的下拉菜单

mysql - 如何按属性拆分 Eloquent 关系结果并仅进行计数

php - 当我尝试有条件地插入或更新时,我在我的 Laravel 应用程序中遇到了竞争条件,有什么建议......?

php - 如何使用 LOAD DATA INFILE 命令在 MySQL 中输入特殊字符

php - 使用 foreach 访问数组元素