2016-03-08 77 views
0

我想測試用戶的條件,然後選擇匹配條件的主表的所有事件。我覺得我做錯了什麼:PostgreSQL創建子表並使用子句

WITH users_table AS (
    SELECT 
     user_name, 
     SUM (CASE WHEN (ud.age > 20) THEN 1 ELSE 0 END) AS UserEvents 
    FROM users_data AS ud 
    GROUP BY user_name 
    ) 
SELECT users_table.user_name FROM users_table 
WHERE users_table.UserEvents > 10 
; 

也就是說,我想用用條款,使20歲以上的所有用戶的表,那麼該表的選擇只使用用戶有超過10個事件。

出於某種原因,我不斷收到錯誤:

錯誤:數倍條款不允許的。 SQL狀態:42601

但我不明白爲什麼?另外,爲什麼「多」與子句...?只有一個條款。

最良好的祝願, -R

回答

0

當您使用多個公用表表達式,你只能使用WITH關鍵字一次。所以它應該看起來像:

WITH first_cte AS (
    SELECT ... 
), 
second_cte AS (
    SELECT ... 
)