2009-09-15 7 views
-1

je veux faire une requête sélectionner les utilisateurs qui ont même nom d'utilisateur et même heure de la date de création en utilisant la base de données postgresqlbase de données postgresql

+1

Désolé, vous avez fourni trop peu d'informations pour commencer à répondre à la question. Commencez avec les détails de votre schéma de base de données ... – pavium

+2

et ne dites pas "veux" – skaffman

Répondre

1

Quelque chose comme ça devrait faire l'affaire. Ceci renverra une paire utilisateur/heure ainsi que le nombre (non testé):

select users.username, datepart('hour', users.created_at), count(*) from users 
    inner join users u2 
    on users.username = u2.username 
    and datepart('hour', users.created_at) = datepart('hour', u2.created_at) 
group by users.username, datepart('hour', users.created_at) having count(*) > 1 
+1

Je suppose que 'même heure de création date' signifie le même temps absolu dans la même heure. So date_trunc ('hour', users.created_at) serait la fonction de choix. –

+0

@incredible_Honk, absolument. Utilisez date_trunc au lieu de datepart. – hgmnz

0
select u.* 
from users u 
join (
    select username, date_trunc('hour', creation_timestamp) 
    from users 
    group by 1, 2 
    having count(*) > 1 
) as x on u.username = x.username 
order by u.username; 

devrait fonctionner bien.

+0

Merci pour votre aide cela fonctionne très bien et je veux ajouter une contrainte qui est la date de création = aujourd'hui Merci – Neveen

Questions connexes