porównaćdlaczego ta kwerenda zwraca wiersz z wartości null
SELECT distinct u_id,timestamp as time
FROM my_table;
i
SELECT distinct u_id,max(timestamp) as time
FROM my_table;
Kiedy moja tabela ma wiersze na wszystkich (lub jeśli dodam WHERE który pasuje nie wierszy):
Pierwszy z nich zwraca pusty zestaw wyników (który jest tym, czego się spodziewam) , podczas gdy później zwraca pojedynczy wiersz, który ma wartość null jako wartość dla obu jej pól.
Czy ktoś może mi wyjaśnić, dlaczego drugi działa tak jak on?
Jest to technicznie tylko połowa odpowiedzi - druga połowa to brak klauzuli group-by w drugim, podczas gdy funkcje agregujące są mieszane z nieagregatami, dlatego u_id ma wartość 'NULL' – tobyodavies