读书人

PostgreSQL 分组查询有关问题

发布时间: 2012-03-09 16:54:57 作者: rapoo

PostgreSQL 分组查询问题
PostgreSQL中如何做分组查询?

在Mysql中我测试:

table:user

id type name ...

1 a li ...
2 b wang ...
3 a zhang ...

...

select t.* from user group by t.type

一切正常,结果正确

但同样的语句在PostgreSQL中却出了问题

经过反复尝试:

select t.type form user group by t.type

正确,但我想查出所有字段

于是又 select t.type,* form user group by t.type

亦不成,哎,以前没用过这东东,还真麻烦

第二天,问朋友,改为
select min(t.type),* from user group by t.type

即成。

搞不明白,为啥还要加个min或max,贴出来大家共同探讨一下。


[解决办法]
两点提示:
1.你对group by的用法是不准确的。不仅在PostgreSQL,在Oracle,SQL server等等绝大多数数据库中,你写的第一个语句都不能执行(我对Mysql不了解,但我对你对Mysql测试表示怀疑)。
2.不太确定你的需求,又要分组,又要查出所有字段,基本上这是不可能完成的任务。你是不是把排序(order by)写成 分组了(group by)?

读书人网 >Mysql

热点推荐