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如下:
在这里插入图片描述
需求1:汇总id=1的,并且score汇总一行,逗号隔开。
语句:sleect id,group_concat(score) from 表1 group by id;
效果:不加separator默认逗号分隔
在这里插入图片描述
需求2:汇总id=1的,并且score汇总一行,去除重复值,逗号隔开。
语句:sleect id,group_concat(distinct score) from 表1 group by id;
效果:
在这里插入图片描述
需求3:汇总id=1的,并且score汇总一行,去除重复值,逗号隔开,排序。
语句:sleect id,group_concat(distinct score order by desc) from 表1 group by id;
效果:
在这里插入图片描述
2、sum():自己理解为求和函数。
参数说明:SUM(DISTINCT expression)
自己理解,参数即为需要求和的列

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 SQLAlchemy 中,可以使用 `func.group_concat()` 函数来实现类似于 MySQL 中的 `GROUP_CONCAT` 函数的功能。`func.group_concat()` 函数可以将一个列的所有值拼接成一个字符串,并且可以指定分隔符。 下面是一个简单的例子,假设有一个 `Book` 表格,其中包含了 `id` 和 `title` 两个列,我们想要将所有的书名拼接成一个字符串并以 `,` 分隔: ```python from sqlalchemy import create_engine, Column, Integer, String, func from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base engine = create_engine('mysql+pymysql://user:password@host:port/database', echo=True) Session = sessionmaker(bind=engine) session = Session() Base = declarative_base() class Book(Base): __tablename__ = 'books' id = Column(Integer, primary_key=True) title = Column(String(255)) result = session.query(func.group_concat(Book.title, separator=',')).scalar() print(result) ``` 在上面的代码中,我们使用 `func.group_concat()` 函数将 `Book` 表格中的所有书名拼接成一个字符串,并以 `,` 分隔。`func.group_concat()` 函数的第一个参数是要拼接的列,第二个参数是分隔符(可选,默认为 `,`)。`session.query(func.group_concat(Book.title, separator=','))` 会生成一个 SQL 查询语句类似于 `SELECT GROUP_CONCAT(title SEPARATOR ',') FROM books`,使用 `scalar()` 方法可以获取查询结果。 希望这个例子能够帮助你理解如何在 SQLAlchemy 中使用 `func.group_concat()` 函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值