`
like.eagle
  • 浏览: 253171 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mysql中GROUP BY结合GROUP_CONCAT的使用

阅读更多

有查询语句如下所示:

select id, type, size, place_id from contents;

查询结果↓:

id  type size place_id 

1   txt    12   100

2   jpg   10   100

3   bmp 15   100  

4   jpg   13   101

5   txt    20   101

 

需求是要统计每个place中content的个数(file_num),文件种类(file_type),总SIZE数(file_size )。

 

于是想到了用来统计的SQL语句如下所示:

SELECT place_id, COUNT(id)  file_num, content_type  file_type, SUM(size)  file_size FROM contents;

查询结果↓:

place_id  file_num  file_type  file_size 

100         3             txt            37

101         2             jpg           33

 

从上述查询记过可以得知file_type的统计有问题:

例如,

对于place 100来说,其中有三种type分别是txt、jpg、bmp,

但是上述语句只能统计出一种,这时就要用到GROUP_CONCAT函数了呢。。。

 

更改SQL文为:

SELECT place_id, COUNT(id)  file_num, GROUP_CONCAT(content_type SEPARATOR "&")  file_type, SUM(size)  file_size FROM contents;

查询结果↓:

place_id  file_num  file_type              file_size 

100         3             txt&jpg&bmp       37

101         2             jpg&txt                33

 

这样的结果就对了!

 

 

 

 

分享到:
评论

相关推荐

    【GROUP_CONCAT】使用之MySQL官方文档翻译

    - **`CONCAT_WS()`**:类似于 `GROUP_CONCAT`,但不支持聚合操作,用于连接字符串并使用指定的分隔符。 通过以上介绍,我们可以看到 `GROUP_CONCAT` 在处理分组数据时的强大能力,以及如何根据具体需求灵活运用其...

    如何修改Mysql中group_concat的长度限制

    为了解决这个问题,你需要调整MySQL的`group_concat_max_len`系统变量。 `group_concat_max_len`变量决定了`GROUP_CONCAT`函数返回的最大长度。你可以通过以下两种方式来修改这个限制: 1. **临时修改(仅限当前...

    MySQL GROUP_CONCAT限制解决方案

    作用:  GROUP_CONCAT函数可以拼接某个字段值成字符串,默认的分隔符是 逗号,即...SHOW VARIABLES LIKE 'group_concat_max_len' 操作方法:(如图) 调整长度设置方法: (1)在MySQL配置文件中加入:  文件:my.ini

    Mysql的GROUP_CONCAT()函数使用方法

    MySQL中的GROUP_CONCAT()函数是一个非常实用的聚合函数,它允许你在分组查询时将同一组内的多个值合并成一个字符串。此函数主要用于数据分析和报表生成,尤其在处理多对多关系的数据时,能简化数据处理流程。在本文...

    MySQL中group_concat函数深入理解

    MySQL中的`GROUP_CONCAT`函数是一个非常实用的聚合函数,它允许你在分组查询中将一组行的某个列值合并成一个字符串,每个值之间由指定的分隔符隔开。这个函数对于数据汇总和报告生成特别有用,因为它可以把多行数据...

    mysql中GROUP_CONCAT的使用方法实例分析

    - `GROUP_CONCAT`默认返回的字符串长度有限制,可以通过设置`group_concat_max_len`系统变量来调整这个限制。 - `GROUP_CONCAT`中的`SEPARATOR`关键字用于指定各个元素之间的分隔符,如果不指定,默认使用逗号 `,`。...

    MySQL统计函数GROUP_CONCAT使用陷阱分析

    在配置文件中添加一行 `group_concat_max_len = 102400`,设定你期望的最大长度。这会永久改变MySQL服务器的默认设置。需要重启MySQL服务以使更改生效。 2. 动态设置会话变量: 如果你只是临时需要增加GROUP_...

    解决Oracle没有WM_CONCAT函数.zip

    在Oracle数据库中,WM_CONCAT是一个非常实用的聚合函数,用于将一组字符串连接成一个单一的字符串,类似于SQL Server中的STRING_AGG或MySQL中的GROUP_CONCAT。然而,Oracle官方并没有提供这个函数,它是一个第三方...

    SqlServer GroupConcat

    `SqlServer GroupConcat`的CLR实现是为了解决SQL Server中缺乏类似MySQL `GROUP_CONCAT`功能的问题。CLR(Common Language Runtime)是.NET框架的一部分,允许开发者使用各种编程语言(如C#、VB.NET等)编写存储过程...

    MySQL拼接字符串函数GROUP_CONCAT详解

    GROUP_CONCAT常与其他函数一起使用,如CONCAT_WS。在示例中,`CONCAT_WS(', ', contactLastName, contactFirstName)`将名和姓用逗号连接,然后整个结果再用分号分隔。 总之,GROUP_CONCAT函数是MySQL中处理字符串...

    浅谈MySQL中group_concat()函数的排序方法

    总的来说,`GROUP_CONCAT()` 函数是MySQL中处理聚合数据的一个强大工具,结合 `ORDER BY` 子句,可以实现对合并后的值进行排序,进一步提升数据的可读性和分析效率。在进行复杂数据整理和分析时,熟练掌握这一功能将...

    mysql group_concat()函数用法总结

    MySQL中的`GROUP_CONCAT()`函数是一个非常实用的聚合函数...不过,合理地使用`GROUP BY`子句和理解`group_concat_max_len`的限制对于正确运用这个函数至关重要。在设计查询时,务必考虑这些因素以确保得到期望的结果。

    Mysql5.7中使用group concat函数数据被截断的问题完美解决方法

    在MySQL 5.7中,`GROUP_CONCAT`函数用于将分组后的多个行合并成一个字符串,通常在聚合查询中使用。然而,当使用此函数时,可能会遇到数据被截断的问题,尤其是在处理较长的字符串时。这个问题源于MySQL的一个系统...

    mysql的group_concat函数使用示例

    默认情况下,这个限制通常是1024个字符,可以通过修改`group_concat_max_len`系统变量来增大这个限制。 - 分隔符可以是任何字符串,例如空格、冒号或其他自定义的字符。例如,要使用分号作为分隔符,可以这样写:`...

    GROUP_CONCAT的用法

    2. GROUP_CONCAT 函数的结果集最大长度为 1024 字符,可以使用 `GROUP_CONCAT_MAX_LEN` 系统变量来调整结果集的最大长度。 3. GROUP_CONCAT 函数忽略空值,可以使用 `COALESCE` 函数来处理空值。 GROUP_CONCAT 函数...

Global site tag (gtag.js) - Google Analytics