Récemment, nous sommes passés de MySQL à Vertica. Je suis perdu sur la façon de recréer la vérification < = 30 dans la clause where de la requête ci-dessous. Cela ne fonctionne pas actuellement dans Vertica, mais dans MySQL. Essentiellement, un utilisateur possède des voitures et des voitures ont des pièces. Je veux totaliser le nombre de voitures et de pièces automobiles dans un délai donné, mais seulement pour les utilisateurs qui ont moins de 30 voitures.Basculer vers Vertica à partir de MySql, agréger dans la clause where ne fonctionne pas
select
count(distinct cr.id) as 'Cars',
count(distinct cp.id) as 'Car Parts'
from
users u
inner join
user_emails ue on u.id = ue.user_id
inner join
cars cr on cr.user_id = u.id
inner join
car_parts cp on cp.car_id = cr.id
where
(
select count(*) from cars where cars.user_id=u.id
) <=30
and
ue.is_real = true and ue.is_main = true
and
cr.created_at >= '2017-01-01 00:00:00' and cr.created_at <= '2017-02-17 23:59:59'
Toute aide ou conseil est grandement appréciée!
Avant ma souris s'envole et mes moniteurs se vide, je reçois cette erreur:
ERROR: Correlated subquery with aggregate function COUNT is not supported
Cela ne fonctionne pas dans Vertica? –
En quoi cela ne fonctionne-t-il pas? La souris s'envole? le moniteur s'éteint? Vous donne l'indigestion? –
Ha ha. Excuses sur le manque d'info - J'obtiens l'erreur suivante: "ERREUR: Sous-requête corrélée avec la fonction d'agrégation COUNT n'est pas supportée" – Grip55