我有下表
ORDID EMPID ITEMCOST TIME
-------------------------------------
10023 B2690 675 1992
10024 C3467 8078 1992
10025 B2690 15481 1992
10026 C5621 22884 1992
10027 B2109 30287 1992
10030 B3297 52496 1993
10031 C3467 59899 1993
10032 F5621 67302 1993
10033 G3467 74705 1993
等很多行......
我试图找出每年都购买一些物品的人。 换句话说,想要找出该表中每年存在的empid。
BTB我正在使用Oracle 11g Express。
提前致谢。
答案 0 :(得分:2)
您可以使用having
子句执行此操作,您可以将每个empid
的不同年份数与数据中不同年份的数量进行比较:
select empid
from followingtable
group by empid
having count(distinct time) = (select count(distinct time) from followingtable);
答案 1 :(得分:0)
以下查询也可以。
SELECT TAB.EMPID FROM
(
SELECT A.EMPID, COUNT(DISTINCT A.TIME) YEARCOUNT FROM MY_TABLE A GROUP BY EMPID
) TAB
WHERE TAB.YEARCOUNT = (SELECT COUNT(DISTINCT B.TIME) FROM MY_TABLE B)