gpt4 book ai didi

mysql - 单个语句上的多个计数列按不同的用户名分组

转载 作者:行者123 更新时间:2023-11-30 22:14:05 24 4
gpt4 key购买 nike

刚接触 SQL,在使用特定语句时遇到一些问题。

这是一些示例数据:

date       | username
2016-01-01 | JIM
2016-01-01 | BOB
2016-01-01 | BOB
2016-01-02 | JIM
2016-01-03 | JIM
2016-01-03 | JIM
2016-01-03 | BOB

我想做的是计算每个用户名的每个不同日期,除非我希望每个日期都在其自己的列中,每个用户名的每个日期都有一个单独的计数。

我将通过 PHP 提供每个单独的日期,并希望您可以在单个 SQL 查询中返回下表:

username | 2016-01-01 | 2016-01-02 | 2016-01-03
JIM | 1 | 1 | 2
BOB | 2 | 0 | 1

到目前为止,我所能实现的只是日期、用户名和每个用户名每天计数的列表:

SELECT date,
haulier,
count(*)
FROM demo
WHERE date >= '2016-01-01' AND
date <= '2016-01-03'
GROUP BY date,
haulier

问候

最佳答案

您可以使用条件聚合:

select s.username,
sum(date = '2016-01-01') as cnt_20060101,
sum(date = '2016-01-02') as cnt_20060102,
sum(date = '2016-01-03') as cnt_20060103
from sample s
group by s.username;

如果您不知 Prop 体日期,那么您需要使用动态 SQL。您可以在 Google 上搜索“MySQL 动态数据透视”以查看如何执行此操作的示例。

关于mysql - 单个语句上的多个计数列按不同的用户名分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39052522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com