Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie SQL dla GROUP BY, zwraca grupy, które pasują do warunków NAJMNIEJSZYCH, COALESCE

Najpierw zdobądź tour_id s, które spełniają warunki:

SELECT Tour_ID
FROM myTable 
WHERE organisation LIKE 'Ikea'
GROUP BY Tour_ID
HAVING LEAST(COALESCE(MIN(A), '2019-01-01'), COALESCE(MIN(B), '2019-01-01'), COALESCE(MIN(C), '2019-01-01'), COALESCE(MIN(D), '2019-01-01')) >= '2018-05-01' AND
       LEAST(COALESCE(MIN(A), '2019-01-01'), COALESCE(MIN(B), '2019-01-01'), COALESCE(MIN(C), '2019-01-01'), COALESCE(MIN(D), '2019-01-01')) < '2018-06-01';

Następnie umieść to w zapytaniu, aby uzyskać oryginalne wiersze. Oto jeden sposób:

select t.*
from mytable t join
     (SELECT organisation, Tour_ID
      FROM myTable 
      WHERE organisation LIKE 'Ikea'
      GROUP BY organisation, Tour_ID
      HAVING LEAST(COALESCE(MIN(A), '2019-01-01'), COALESCE(MIN(B), '2019-01-01'), COALESCE(MIN(C), '2019-01-01'), COALESCE(MIN(D), '2019-01-01')) >= '2018-05-01' AND
             LEAST(COALESCE(MIN(A), '2019-01-01'), COALESCE(MIN(B), '2019-01-01'), COALESCE(MIN(C), '2019-01-01'), COALESCE(MIN(D), '2019-01-01')) < '2018-06-01'
     ) tt
     ON tt.tour_id = t.tour_id AND
        tt.organisation = t.organisation;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql sprawdza, czy liczby są na liście oddzielonej przecinkami

  2. Bez względu na wszystko, nie mogę wsadowych instrukcji INSERT MySQL w Hibernate

  3. Zdalne połączenie MySQL (replikacja)

  4. przechowywanie obrazu do byte[] w Mysql za pomocą asp.net i c#

  5. Mysql varchar unikalna kolumna varchar(255) vs. varchar(50)