如何在MySQL中进行模糊分组?

Di Zou

我在MySQL中有以下查询:

select 
    hour,
    traffic_source_name,
    COUNT(*)
from 
    my_data_table
group by
    hour,
    traffic_source_name

这给了我这样的结果:

'h', 'traffic_source_name', 'COUNT(*)
'2015-07-28 00:00', 'google', '628'
'2015-07-28 00:00', 'Google Tier 2 Search', '1'
'2015-07-28 00:00', 'Taboola/Outbrain Content', '3'
'2015-07-28 00:00', 'yahoo', '3'
'2015-07-28 00:00', 'Email', '67'
'2015-07-28 00:00', 'msn', '253'
'2015-07-28 00:00', 'Facebook Social Media', '139'
'2015-07-28 01:00', 'yahoo', '2'
'2015-07-28 01:00', 'Email', '46'
'2015-07-28 01:00', 'Popular Marketing', '1'
'2015-07-28 01:00', 'Yahoo Stream Ads Content', '3'
'2015-07-28 01:00', 'Facebook Social Media', '183'
'2015-07-28 01:00', 'google', '530'
'2015-07-28 01:00', 'msn', '210'

事实是,我想将“ google”和“ Google Tier 2 Search”合并为一行,例如“ google”,“ yahoo”和“ Yahoo Stream Ads Content”合并为“ yahoo”。我将如何去做呢?

于尔多

转换组之前的值,如下所示:

select 
    hour,
    IF (traffic_source_name IN ('google', 'Google Tier 2 Search'), 'google'
    , IF (traffic_source_name IN ('yahoo', 'Yahoo Stream Ads Content'), 'yahoo'
    , traffic_source_name
    )) AS tsn,
    COUNT(*)
from 
    my_data_table
group by
    hour,
    tsn

但是,这可能具有更好的可读性:

select 
    hour,
    CASE traffic_source_name 
    WHEN 'Google Tier 2 Search' THEN 'google'
    WHEN 'Yahoo Stream Ads Content' THEN 'yahoo'
    ELSE traffic_source_name
    END AS tsn,
    COUNT(*)
from 
    my_data_table
group by
    hour,
    tsn

第一个让您使分组值更明显,而第二个让您避免维护嵌套的IF(,, IF(,, IF ...)))东西....或者我们可以做到最好两者:

select 
    hour,
    CASE 
    WHEN traffic_source_name IN ('google', 'Google Tier 2 Search') 
      THEN 'google'
    WHEN traffic_source_name IN ('yahoo', 'Yahoo Stream Ads Content')
      THEN 'yahoo'
    ELSE traffic_source_name
    END AS tsn,
    COUNT(*)
from 
    my_data_table
group by
    hour,
    tsn

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Redis中进行模糊搜索

来自分类Dev

如何在mongoengine中进行“分组依据”

来自分类Dev

如何在MongoDB中进行双重分组?

来自分类Dev

如何在Linq中进行分组

来自分类Dev

如何在python中进行模糊字符串更新

来自分类Dev

如何在Kusto中进行“通过汇总进行分组”?

来自分类Dev

如何在Kusto中进行“通过汇总进行分组”?

来自分类Dev

如何在MySQL中进行插值

来自分类Dev

如何在mysql中进行精确比较?

来自分类Dev

如何在MySQL中进行特定查询

来自分类Dev

如何在 MySQL 中进行不同的排序?

来自分类Dev

如何在 MySQL 中进行 Intersect 查询?

来自分类常见问题

如何在Oracle SQL中进行非常特殊的分组

来自分类Dev

如何在Django模型中进行“分组依据”?

来自分类Dev

如何在SQL Server查询中进行分组

来自分类Dev

如何在dplyr r中进行条件分组和汇总

来自分类Dev

如何在BigQuery中进行数据分组?

来自分类Dev

如何在R中进行汇总和分组

来自分类Dev

如何在Oracle SQL中进行非常特殊的分组

来自分类Dev

如何在角度8的对象数组中进行分组

来自分类Dev

如何在pyspark数据帧中进行分组而不聚集

来自分类Dev

如何在Java中的k-map中进行分组?

来自分类Dev

如何在Django模型中进行“分组依据”?

来自分类Dev

如何在Linq中进行3个嵌套分组

来自分类Dev

如何在大熊猫中进行复杂条件的分组

来自分类Dev

如何在大熊猫中进行分组和变形

来自分类Dev

如何在asp.net的Lucene.net中进行模糊搜索?

来自分类Dev

如何在mysql中进行循环以进行选择语法

来自分类Dev

如何在inno setup中进行mysql的静默安装?