PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Liczenie według najwcześniejszej daty znalezionej w sprzężeniu wewnętrznym?

Możesz użyć następującego zapytania:

SELECT CONCAT(EXTRACT(MONTH FROM startedPayingDate), '-', 
              EXTRACT(YEAR FROM startedPayingDate)) AS "Month", 
       COUNT(*) AS "Total AB Paying Customers"
FROM (       
   SELECT customer_id, MIN(created_at) AS startedPayingDate 
   FROM customerusermap AS cm
   WHERE NOT EXISTS (SELECT 1
                     FROM users AS u
                     WHERE cm.user_id = u.id)
   GROUP BY customer_id ) AS t
GROUP BY 1   

Użyłem NOT EXISTS operatora, aby wykluczyć rekordy, które odnoszą się do „płać za siebie” klientów (jeśli naprawdę masz taki zamiar).

Po uzyskaniu MIN(created_at) data na customer_id , możesz łatwo policzyć według daty w zapytaniu zewnętrznym.

Pokaz tutaj




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - utwórz nową bazę danych za pomocą interfejsu użytkownika pgAdmin

  2. Słaba wydajność, gdy podobieństwo trygramów i wyszukiwanie pełnotekstowe zostały połączone z Q ind django przy użyciu postgres

  3. Zmień klucz podstawowy w tabeli PostgreSQL

  4. Postgres Zmień liczbę całkowitą kolumny na Boolean

  5. Jak deserializować wartość BigDecimal otrzymaną od brokera kafka poprzez mechanizm debezium CDC?