分享

在SQL中使用GROUP BY时,有一些事必须注意:

 昵称7196596 2011-06-23
在SQL中使用GROUP BY时,有一些事必须注意:

1。不能使用别名
2。除了函数字段,SELECT出现的所有字段都必须在GROUP BY中出现
3。别名不要使用保留字

不同的数据库要求不一样,MYSQL没有这些限制,SQL SERVER有1,2的限制,ORACLE有1,2,3的限制。

比如以下几个都不对:
select count(*), to_char(TS,'YYYYMMDD') as date, protocol_name from TRANSACTIONS where PROTOCOL_NAME = 'cXML' group by date, PROTOCOL_NAME order by date

select count(*), to_char(TS,'YYYYMMDD') as date, protocol_name from TRANSACTIONS where PROTOCOL_NAME = 'cXML' group by to_char(TS,'YYYYMMDD') order by date

select count(*), to_char(TS,'YYYYMMDD') as date, protocol_name from TRANSACTIONS where PROTOCOL_NAME = 'cXML' group by to_char(TS,'YYYYMMDD'), PROTOCOL_NAME order by date

这个才对:
select count(*), to_char(TS,'YYYYMMDD') as t_date, protocol_name from TRANSACTIONS where PROTOCOL_NAME = 'cXML' group by to_char(TS,'YYYYMMDD'), PROTOCOL_NAME order by t_date

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多