作为标题,我的查询如下:
SELECT
COUNT(
DISTINCT (CASE WHEN id IN (
SELECT DISTINCT id
FROM some_table
WHERE year = 2019
AND month IN (1, 2, 3)
) tmp AND (*OTHERS CONDITIONS*) THEN id END)
) AS devices
FROM some_table
WHERE year = 2019
AND month IN (1, 2, 3);但是,我一直收到这个错误:
cannot recognize input near 'SELECT' 'DISTINCT' 'id' in expression specification我该怎么解决呢?
发布于 2022-03-17 18:47:18
您不能像这样使用子查询。将子查询更改为联接,并在下列情况下使用它。
SELECT
COUNT(
DISTINCT (CASE WHEN tmpid is not null
AND (*OTHERS CONDITIONS*) THEN id END)
) AS devices
FROM some_table
left join (SELECT DISTINCT id as tmpid
FROM some_table
WHERE year = 2019
AND month IN (1, 2, 3)
) tmp on tmp.tmpid = id
WHERE year = 2019
AND month IN (1, 2, 3);https://stackoverflow.com/questions/71517453
复制相似问题