SQL子查询:子查询的列太多
我正在尝试运行一个包含2个子查询的查询。我正在尝试创建一个名为“Delta Date”的字段,它从第二个查询中减去Date1中的minDate。请帮助,我一直收到错误“子查询的列太多”SQL子查询:子查询的列太多,sql,postgresql,Sql,Postgresql,我正在尝试运行一个包含2个子查询的查询。我正在尝试创建一个名为“Delta Date”的字段,它从第二个查询中减去Date1中的minDate。请帮助,我一直收到错误“子查询的列太多” SELECT Date1, #first query (Date1 - minDate) as Delta Date UNIQUE_ID FROM panel WHERE (lower(criteria) LIKE lower(\'%crite
SELECT Date1, #first query
(Date1 - minDate) as Delta Date
UNIQUE_ID
FROM panel
WHERE (lower(criteria) LIKE lower(\'%criteria1%\'))
AND UNIQUE_ID IN (
SELECT min(Date1) as minDate, #second query
UNIQUE_ID
FROM panel
WHERE (lower(criteria) LIKE lower(\'%criteria2%\'))
AND Amount < 10000
AND UNIQUE_ID IN ( SELECT UNIQUE_ID #third query
FROM panel
WHERE file_date > \'9/30/2015\'
/* AND additional logic to filter member purchases */
GROUP BY UNIQUE_ID
HAVING count(AMOUNT) > 1 )
GROUP BY UNIQUE_ID )
标记为第二个查询的子查询返回minDate&UNIQUE\u ID。这就是问题所在 选择minDate1作为minDate中的唯一\u ID,唯一\u ID来自 您需要在第一个查询的FROM子句中放入第二个查询。在此上下文中,in子查询应该只有一列:
UNIQUE_ID IN (
SELECT UNIQUE_ID
FROM panel
WHERE (lower(criteria) LIKE lower(\'%criteria1%\')) AND
UNIQUE_ID IN (SELECT UNIQUE_ID
FROM panel
WHERE (lower(criteria) LIKE lower(\'%criteria2%\')) AND
Amount < 10000 AND
UNIQUE_ID IN (SELECT UNIQUE_ID
FROM panel
WHERE file_date > \'9/30/2015\'
/* AND additional logic to filter member purchases */
GROUP BY UNIQUE_ID
HAVING count(AMOUNT) > 1
)
GROUP BY UNIQUE_ID
)
)
SELECT Date1, UNIQUE_ID,
(Date1 - MIN(DATE1) OVER (PARTITION BY UNIQUE_ID) ) as Delta Date
FROM panel
WHERE (lower(criteria) LIKE lower(\'%criteria1%\'));