Próbuję uzyskać maksymalną wartość mysql select, ale chcę mieć wartość null/empty/0, jeśli istnieje jeden wiersz bez znacznika czasu.MySQL zwraca wartość maksymalną lub zerową, jeśli jedna kolumna nie ma wartości
statystyki stołowe (simplyfied):
ID CLIENT ORDER_DATE CANCEL_DATE
1 5 1213567200
2 5 1213567200
3 6 1210629600 1281736799
4 6 1210629600 1281736799
5 7 1201042800 1248386399
6 7 1201042800
7 8 1205449200 1271282399
jestem teraz chcą uzyskać najniższą datę zamówienia (bez problemu, jako że nigdy nie jest pusty), a maksymalne anulować datę. Jeśli klient anulował już swoją subskrypcję, data anulowania jest wypełniona, ale jeśli jest nadal aktywny, nie ma w ogóle daty anulowania.
zapytania:
SELECT ID, min(ORDER_DATE) AS OD, max(CANCEL_DATE) AS CD FROM stats GROUP BY CLIENT
Powroty:
ID OD CD
5 1213567200 // fine
6 1210629600 1281736799 // fine
7 1201042800 1248386399 // Should be empty
8 1205449200 1271282399 // fine
nie mogę zrozumieć to jak powrót pusty/0/null jeśli jest jeden (lub więcej) pustych colums dla klienta . Próbowano również z polami NULL.
Dzięki za podpowiedź.
Nie wiem, czy będzie szybszy niż mój, myślę, że mogą być one równoważne, ale to fajny pomysł :) +1 – fthiella
Praca też. Wielkie dzięki. Przez kilka godzin robił mi fiddeling, ale nie miał tego prostego rozwiązania. Prędkość: 0,06 s dla ~ 6k rzędów. Tak więc nieco szybciej niż rozwiązanie Fthiella – Yenky