将SQL CTE表达式转换为普通子查询

时间:2019-03-29 14:03:05

标签: sql

是否可以将带有CTE表达式的以下SQL查询转换为子查询版本? 它适用于SQL 8,但我需要在SQL 5上运行

WITH no_duplicate AS
(   SELECT * , ROW_NUMBER() OVER (PARTITION BY lead_google_client_id ORDER BY lead_google_client_id DESC) AS single_googleClientID
FROM properties
)
SELECT lead_referral,
count(*) as total,
count(case when state = 'rejected' and priority != 3 then 1 end) as rejected
FROM no_duplicate
WHERE single_googleClientID=1
GROUP BY lead_referral

1 个答案:

答案 0 :(得分:0)

免责声明:我不确定您要完成什么。为此,您将必须提供更多信息,例如properties表中的示例数据。

尝试一下:

SELECT 
  ROW_NUMBER() OVER (PARTITION BY lead_google_client_id ORDER BY lead_google_client_id DESC) AS single_googleClientID, lead_referral,
  count(*) as total,
  count(case when state = 'rejected' and priority != 3 then 1 end) as rejected
FROM properties
WHERE single_googleClientID=1
GROUP BY lead_referral