gpt4 book ai didi

mysql - 如何编写 SQL 来统计移动/平板/桌面用户的数量?

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:43 32 4
gpt4 key购买 nike

我有一张 table ,看起来像,

VisitorId   date            deviceType
1 2018-12-11 mobile
2 2018-12-11 mobile
3 2018-12-11 desktop
4 2018-12-11 mobile
1 2018-12-12 desktop
2 2018-12-12 mobile
1 2018-12-20 mobile
2 2018-12-20 tablet
...

每一行记录一个新访客的信息。

我正在尝试编写一个查询来输出基于日期的移动设备/台式机/平板电脑的数量。预期的输出应该如下所示

date        numOfDesktop      numOfTablet      numOfMobile
2018-12-11 1 0 3
2018-12-12 1 0 1
2018-12-20 0 1 1
...

我写过这样的SQL,但是语法不对。

SELECT 
date,
COUNT(deviceType= "mobile") As numOfMobile,
COUNT(deviceType= "desktop") AS numOfDesktop,
COUNT(deviceType= "tablet") AS numOfTablet
FROM
tableName
GROUP BY date
ORDER BY date ASC

我没有 SQL 方面的经验,有人可以帮我设计一个有效的 SQL 查询吗?

最佳答案

您的想法是正确的,尽管如您所见,这不是有效的语法。不过,您可以使用 case 表达式:

SELECT 
date,
COUNT(CASE deviceType WHEN 'mobile' THEN 1 END) As numOfMobile,
COUNT(CASE deviceType WHEN 'desktop' THEN 1 END) AS numOfDesktop,
COUNT(CASE deviceType WHEN 'tablet' THEN 1 END) AS numOfTablet
FROM
tableName
GROUP BY date
ORDER BY date ASC

关于mysql - 如何编写 SQL 来统计移动/平板/桌面用户的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53920398/

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