今天在查询数据的时候,使用group by 一直再报一个错误,
我改了半天sql,发现显示的字段改一下就可以查询了
SELECT source_table_name FROM tb_ammeter_info GROUP BY source_table_name;
只显示分组的字段就不会报错,如果填一个其他字段或者是 * 就报错,例如:
SELECT source_table_name,name FROM tb_ammeter_info GROUP BY source_table_name;
SELECT * FROM tb_ammeter_info GROUP BY source_table_name;
弄了半天,实在是搞不懂 postgre 这个数据库是不是有病?查询要显示所有字段,但是分组后只让显示一个,我服了,是我技术不够。
有没有大佬告知一下怎么才可以显示所有字段,我真是让 postgre这个库的骚设计搞炸了。
既然用了group by,那么能在select中能单独显示的只有group by的字段,其他的只能是sum(column1), max(column2), min(column3)这样的聚合函数值。
如果要单独显示多个字段,需要把这些字段都通过group by聚合一下:
希望能帮助到你。