sql - 如何获取所有列,但必须在sql查询中仅按2列进行分组

标签 sql oracle

我有一个表Employees,其中的字段如下:

Employee_name,Employee_id,Employee_status,Employee_loc,last_update_time.

该表没有任何约束。 我已经尝试过以下查询。

select Employee_name, count(1) 
from Employees 
where Employee_status = 'ACTIVE' 
Group by Employee_name,Employee_loc 
having count(Employee_name) > 1 
order by count(Employee_name)  desc

在选择中,我也需要获取Employee_id..任何人都可以帮助如何获取它吗?

最佳答案

您只需将 Employee_id 添加到查询中,也可以将其添加到 group by 子句中。 (假设每个员工姓名每个员工 ID 都是唯一的,将其添加到分组不会对查询结果产生任何影响)。

如果分组确实有所不同,则意味着员工姓名和位置的某些组合具有多个与其关联的 ID。因此,您的查询需要决定返回哪个 ID,可能需要使用聚合函数。

关于sql - 如何获取所有列,但必须在sql查询中仅按2列进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15784760/

相关文章:

sql - 带和不带 ORDER BY 子句的分区分析计数

sql - 嵌套的物化 View 找出提交时的操作?

php - INSERT 上的 SQL 注入(inject)

sql - 如何在同一个数据库表中查找重复的列值?

sql - 如何删除 SQL-Server 中的表变量?我应该这样做吗?

sql - 从异常中提取用户定义的错误消息

sql - 如果oracle数据库中的某个表是空表统计的,那么如何恢复该表的原始统计信息呢?

sql - 复制行并更改一小部分列?

sql - SQL 查询中的 distinct 问题

sql - 查询不存在的列不会失败