【发布时间】:2017-04-09 04:19:34
【问题描述】:
我想知道是否可以在包含聚合函数(如 min、max ...)的 select 语句中添加另一列
示例:
SELECT user_id, MAX(salary) FROM users;
此语句在 sql 标准中是否正确(在 mysql 中它的工作); 它在 mysql 中工作,但我想我在某处读到,如果我在 select 子句中放置一个聚合函数,除了聚合函数之外我不能放任何东西,或者如果有 group by,分组列可以在 select 子句中(在 mysql 中)
编辑:
User(user_id, name, last_name, salary)
我想从User 表中选择user_id, name, (maximum salary column);没有子查询可以做到吗?
用户表
User_id, Name, Salary
| 1 | user1 | last1 | 500 | |
|---|-------|-------|------|---|
| 2 | user2 | last2 | 1000 | |
| 3 | user3 | last3 | 750 | |
| | | | | |
输出必须是user_id, username, lastname, and salary of the user who have the max salary,所以这里的输出必须是:
2 user2 last2 1000
【问题讨论】:
-
取决于你想做什么,mysql在聚合函数和分组方面不遵循ansi标准,所以你可以做一些其他数据库不允许的快捷方式。
-
@scaisEdge 我使用 group by,它将返回每个元组 user_id 的 max(salary),名称与使用
SELECT user_id, name, salary相同 -
顺便说一句,您应该向我们展示示例数据和预期输出。根据您的需要,这个问题可能会有所不同。