select distinct employee_id, first_name, commission_pct, department_id from
employees;
当我使用上面的查询时,它会产生所提到的所有属性的不同组合。由于employee_id(作为员工的主键)是唯一的,因此查询结果会生成表中的所有行。
我想要一个具有commission_pct 和department_id 不同组合的结果集。那么应该如何形成查询。当我尝试包括DISTINCT
中间为
select employee_id, first_name, distinct commission_pct, department_id from
employees;
这会导致错误
ORA-00936-missing expression
如何形成一个查询,其结果只有commission和department_id的不同组合。该表来自HR
甲骨文的架构。
你所要求的是不可能的。您无法选择所有员工 ID,而只能选择不同的 Commission_pct 和 Department_id。
所以想一想,你想展示什么:
- 仅所有不同的commission_pct、department_id?
- 所有不同的commission_pct、department_id以及相关员工的数量?
- 所有不同的commission_pct、department_id 和相关员工用逗号分隔吗?
- 所有员工,但当commission_pct 和department_id 与之前的行中相同时为空?
第一个可以用 DISTINCT 来解决。第二个和第三个使用 GROUP BY(加上 count 或 listagg)。最后一个问题可以通过分析函数 LAG 来解决。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)