我有这个问题:
SELECT *
FROM GUITARS.FENDER
WHERE FENDER.GUITARTYPE IN (
SELECT GUITARTYPE,Count(*)
FROM GUITARS.GUITAR_TYPE
WHERE GuitarColor = 'RED'
Group By GUITARTYPE
Having Count(*) = 1)
基本上我想确保我只检查没有重复计数的Guitartypes。问题是IN只检查1列,但我需要计数(*)来存在多个吉他类型的实例。有没有办法使这个查询工作,或者可能采用另一种方式进行计数。
答案 0 :(得分:3)
您不需要在select语句中返回计数(),具有group by和count()就足够了。
SELECT *
FROM GUITARS.FENDER
WHERE FENDER.GUITARTYPE IN (
SELECT GUITARTYPE
FROM GUITARS.GUITAR_TYPE
WHERE GuitarColor = 'RED'
Group By GUITARTYPE
Having Count(*) = 1)
添加代码使其看起来正确。