sql >> Databáze >  >> RDS >> PostgreSQL

Čas mezi dvěma událostmi

Můžete použít následující dotaz:

SELECT user_id,
       MAX(CASE WHEN action = 'clear' THEN created_at END) -
       MAX(CASE WHEN action = 'create' THEN created_at END) AS time_diff 
FROM mytable
GROUP BY user_id 
HAVING COUNT(*) = 2

HAVING klauzule odfiltruje user_id skupiny obsahující pouze create akci, jako je záznam s id=9 v OP.

Ukázka zde




  1. Optimalizace dotazu na počet pro PostgreSQL

  2. Podíváme se na extrahování dat mezi závorkami v řetězci přes MYSQL

  3. mysql SQL:konkrétní položka, která má být první, a potom seřadit zbývající položky

  4. syntaxe výběru Oracle SQL s klauzulí GROUP BY a HAVING