我正在使用Netezza SQL。
我有下表:
student_id years
1 123 2010
2 123 2011
3 123 2012
4 124 2010
5 124 2011
6 124 2012
7 124 2013
8 125 2010
9 125 2011
10 125 2012
11 125 2013
12 125 2014
我的问题:
我只想选择只有年份的学生=(2010201120122013)。这意味着在上表中,将只选择student_id=124。
以下是我使用NOT IN函数的查询(首先使用NOT IN选择不符合条件的学生…然后使用NOT IN排除不符合条件):
SELECT student_id, years
FROM my_data
WHERE student_id NOT IN (
SELECT student_id
FROM my_data
WHERE years NOT IN (2010, 2011, 2012, 2013)
)
但是,此查询错误地返回了学生123和学生124:
student_id years
1 123 2010
2 123 2011
3 123 2012
4 124 2010
5 124 2011
6 124 2012
7 124 2013
有人能告诉我怎么修吗?最终答案应该只返回学生124。
谢谢