postgresql group by 查询
项目中有需求需要 使用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
种一棵树最好的时间是十年前 其次是现在