mysql使用小记--group_concat()、sum()

使用背景

每周从设备中导出数据进行整合分析,使用excel较为繁琐,因为格式固定,所以使用mysql语法。

最终语句

SELECT
srcip AS 列1,
group_concat(
DISTINCT dscip SEPARATOR "、"
) AS 列2,
group_concat(
DISTINCT grade SEPARATOR "、"
) AS 列3,
group_concat(DISTINCT type SEPARATOR "|") AS 列4,
sum(number) AS 列5
FROM
outgoing
GROUP BY
srcip
ORDER BY
列5 DESC;

用到的函数:
1、group_concat():自己理解为分组数据拼接函数。
参数说明:group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
举例:
表1如下:
mysql使用小记--group_concat()、sum()_第1张图片
需求1:汇总id=1的,并且score汇总一行,逗号隔开。
语句:sleect id,group_concat(score) from 表1 group by id;
效果:不加separator默认逗号分隔
mysql使用小记--group_concat()、sum()_第2张图片
需求2:汇总id=1的,并且score汇总一行,去除重复值,逗号隔开。
语句:sleect id,group_concat(distinct score) from 表1 group by id;
效果:
mysql使用小记--group_concat()、sum()_第3张图片
需求3:汇总id=1的,并且score汇总一行,去除重复值,逗号隔开,排序。
语句:sleect id,group_concat(distinct score order by desc) from 表1 group by id;
效果:
mysql使用小记--group_concat()、sum()_第4张图片
2、sum():自己理解为求和函数。
参数说明:SUM(DISTINCT expression)
自己理解,参数即为需要求和的列

日常使用中与group_concat()函数搭配使用较佳,以上仅为此使用背景下分析,不为该函数的全部。
仅记录学习心得,有理解不到位,请各位大神指点。

你可能感兴趣的:(mysql,mysql,数据库)