当GROUP BY 与ORDER BY 一起使用时

第一条语句:
SELECT 数量 FROM 订货单 ORDER BY 单价

第二条语句:
SELECT 单价,数量 FROM 订货单 GROUP BY 单价,数量 ORDER BY 数量





第一条语句ORDER BY后面的单价并未在SELECT出现,第二条语句ORDER BY后面字段在SELECT和GROUP BY中出现了

是不是这样的:
如果GROUP BY和ORDER BY一起使用,那ORDER BY引用的字段必须在GROUP BY或SELECT子句中出现的字段呢?

如果是,那为什么还几本书上都不提这点呢?

ORDER BY 子句中的列必须包含在聚合函数或 GROUP BY 子句中。

SQL code
?

1
SELECT  [col1] ,[col2]  FROM  [tb]  GROUP  BY  [col1] ,[col2]   ORDER  BY  [col1] ,[col2] ,[col3]

不一定要在select 里面出现
下面这个就是错的

SQL code
?
1
SELECT  [col1] ,[col2]  FROM  [tb]  GROUP  BY  [col1] ,[col2]   ORDER  BY  [col1] ,[col2] ,[col3]


而下面的都是对的

SQL code
?
1
2
3
SELECT  [col1] ,[col2], MAX ([col3])  FROM  [tb]  GROUP  BY  [col1] ,[col2]   ORDER  BY  [col1] ,[col2] , MAX ([col3])
SELECT  [col1] ,[col2], MAX ([col3])  AS   [col3]  FROM  [tb]  GROUP  BY  [col1] ,[col2]   ORDER  BY  [col1] ,[col2] ,[col3]
SELECT  [col1] ,[col2]  FROM  [tb]  GROUP  BY  [col1] ,[col2] ,[col3]  ORDER  BY  [col1] ,[col2] ,[col3]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 PostgreSQL GROUP BY 语句和 SELECT 语句可以一起使用来对相同的数据进行分组。GROUP BY 通常放在 WHERE 子句之后和 ORDER BY 子句之前。 下面是 GROUP BY 与 ORDER BY 一起使用的基本语法: SELECT column-list FROM table_name WHERE [ conditions ] GROUP BY column1, column2....columnN ORDER BY column1, column2....columnN 这个语法允许你按照指定的对结果进行分组,然后按照指定的对分组结果进行排序。 需要注意的是,如果一个查询使用了分组函数,那么任何不在分组函数或表达式都必须GROUP BY 子句出现,否则会出错。例如,如果在一个查询使用了 SUM 函数来计算某的总和,那么该必须GROUP BY 子句出。否则,会出现错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [PgSQL——学习笔记八: ORDER BY 子句:排序 & GROUP BY 语句:分组](https://blog.csdn.net/qq_41361442/article/details/124809777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [group by,having,order by的用法详解](https://download.csdn.net/download/weixin_38543460/13699445)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值