2017-06-21 3 views
0

j'ai écrit ce code ci-dessous et je veux produire quelque chose qui ressemble à ceci:Postgres le regroupement des valeurs ensemble au lieu d'avoir des valeurs individuelles

Days Before Stay | Number of Submits 
------------------------------------- 
0-9  |  11 
10-19  |  14 
20-29  |   3 

Je créer une instruction select de cas qui crée une erreur de syntaxe

WITH sql_runner_query AS (SELECT 
events_raw.properties ->> 'days_before_stay' AS "Number of Days 
Before Stay", 
COUNT(CASE WHEN ((events_raw.properties ->> 'event_type') LIKE 
'fs_mystay_activity_submit') THEN 1 ELSE NULL END) AS "Number of 
Activities Processed" 
FROM events_raw 

WHERE (events_raw.account_id = 7270737) AND 
((((events_raw.properties ->> 'days_before_stay') IS NOT NULL) AND 
((events_raw.properties ->> 'days_before_stay') IS NOT NULL AND 
LENGTH(events_raw.properties ->> 'days_before_stay') <> 0))) AND 
(events_raw.account_id > 0) 
GROUP BY 1 
ORDER BY 1 desc 
LIMIT 500 
) 

(SELECT 
events_raw.properties ->> 'days_before_stay' AS "Number of Days 
Before Stay", 
COUNT(CASE WHEN ((events_raw.properties ->> 'event_type') LIKE 
'fs_mystay_activity_submit') THEN 1 ELSE NULL END) AS "Number of 
Activities Processed" 
case when 'days_before_stay' >= 0 and <=10 then '0-10' 
else 
'11-300' end as range 
FROM events_raw 

GROUP BY 1,2 
ORDER BY 1 DESC 
LIMIT 5000 
+1

Vous devez partager le message d'erreur et expliquer comment il se rapporte au titre de votre question. En outre, le CTE sql_runner_query n'est pas demandé du tout dans la requête principale. – FuzzyChef

Répondre

0

(SELECT dans la 2ème partie de la requête ne devrait pas avoir un (

Il vous manque une virgule ici:

COUNT(CASE WHEN ((events_raw.properties ->> 'event_type') LIKE 'fs_mystay_activity_submit') THEN 1 ELSE NULL END) AS "Number of Activities Processed" , -- add a comma here case when 'days_before_stay' >= 0 and <=10 then '0-10' else '11-300' end as range

Autres problèmes avec la requête:

  • pourquoi êtes-vous regroupement par le COUNT()? Pourquoi avez-vous un CTE appelé sql_runner_query et ne pas le référencer dans la requête principale?