首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -按两列分组

MySQL -按两列分组
EN

Stack Overflow用户
提问于 2015-11-25 07:46:42
回答 1查看 242关注 0票数 2

我有张像这样的桌子

代码语言:javascript
复制
id, user_id   , type, date
3,  ivnWvOQqoN, iOS , 2015-11-24 15:46:09
4,  dskIbJhuSd, iOS , 2015-11-23 19:39:31
5,  dskIbJhuSd, iOS , 2015-11-24 23:37:45
6,  ----------, iOS , 2015-11-22 23:38:05
7,  ----------, iOS , 2015-11-23 23:38:10

现在我正在做这样的查询

代码语言:javascript
复制
SELECT COUNT(*) AS entries, user_id, DATE(created_at) as date, device_type
FROM App_Usage
WHERE device_type = 'iOS'
  AND created_at between 2015-11-22 AND 2015-11-25
GROUP BY DATE(created_at), user_id

这个返回的结果,我希望它看起来像这样

代码语言:javascript
复制
((1L, '----------', datetime.date(2015, 11, 22), 'ios'),
(1L, 'dskIbJhuSd', datetime.date(2015, 11, 23), 'ios'),
(1L, '----------', datetime.date(2015, 11, 23), 'ios'),
(1L, 'dskIbJhuSd', datetime.date(2015, 11, 24), 'ios'),
(1L, 'ivnWvOQqoN', datetime.date(2015, 11, 24), 'ios')

以上代码中的最后两行将成为下一段代码中的最后一行。上面的代码中的第二行变成下面代码中的第二行。

我的问题是,我是否可以按日期分组,如果用户不是'----------',那么它会返回这样的结果

代码语言:javascript
复制
((1L, '----------', datetime.date(2015, 11, 22), 'ios'),
(1L, 'combo of users' datetime.date(2015, 11, 23), 'ios'),
(1L, '----------', datetime.date(2015, 11, 23), 'ios'),
(2L, 'combo of users', datetime.date(2015, 11, 24), 'ios'),

我在第一个结果中保留了user_id,以表明只要用户是'---------',我就希望将这些分组,其他分组。

因此,我想按日期分组,然后按用户不是'----------'的位置分组,我怎么能这样做,甚至可能呢?

期望输出

产出:

代码语言:javascript
复制
number of uses, user_id**, type, date;
(1, '----------', 'ios', '2015-11-22 23:38:05'),
(1, 'some users or combo', 'ios', '2015-11-22 13:33:33'),
(2, 'some users or combo', 'ios', '2015-11-23 13:35:37'),
(1, '----------', 'ios', '2015-11-24 00:09:44'),
(2, 'some users or combo', 'ios', '2015-11-24 00:09:44'),

**所以我希望所有的用户正如你在第24rd中所看到的,这两个不同的用途被放在一起,其中的用法是“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 07:50:12

代码语言:javascript
复制
select count(*) as entries, dateCreate, device_type, user_id
from 
    (SELECT DATE(created_at) as dateCreate, device_type, case when user_id = '----------' then '-----------' else 'combo of users' as user_id  
    FROM App_Usage 
    WHERE device_type = 'iOS' 
    AND created_at between 2015-11-22 
    AND 2015-11-25) as temp_table 
GROUP BY dateCreate, user_id, device_type

注意:使用dateCreate代替date,因为它是关键字

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33910995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档