postgresql group by 查询

发布时间 2023-03-27 16:31:43作者: yangjl01

项目中有需求需要 使用group by 在postgresql中进行查询,但是和以前用得mysql不同得是,使用了group by之后,select 后面指定的字段必须与group by的字段一致。

网上查询了下  有一些处理办法:

 1.可以把group by的结果集当作一个表,然后从这里表里取数就可以了。

 2.使用group by 时,select 涉及的列要么是参与分组的列,要么列包含在聚合函数中(min(),max(),array_agg()等)。

还有一种就是我采用得方法,使用distingct  on()  结合 order by 实现group by得效果,(数据量不大,没有考虑效率,同时对原有sql改动小)

语句如下:

select DISTINCT ON (grid_code) grid_code,grid_name,
        type_name,id,group_name,zhan_ping_type,longitude,latitude
        from zc_pingzhan_people
ORDER BY  grid_code asc

 

参考文章:

https://blog.csdn.net/u010112509/article/details/110140414?spm=1001.2101.3001.6650.1&depth_1-utm_relevant_index=2

https://glory.blog.csdn.net/article/details/80865000?spm=1001.2101.3001.6650.1&depth_1-utm_relevant_index=2

https://blog.csdn.net/qq_35461048/article/details/108150273?spm=1001.2101.3001.6650.1&depth_1-utm_relevant_index=2