У меня есть таблица счетов и таблица account_logins. Я пытаюсь выбрать все учетные записи, а затем упорядочить их по времени последнего входа в систему. Пока у меня есть следующее:
accounts
.confirmed_visible_with_completed_profile
.joins(:logins)
.select('accounts.*, max(account_logins.created_at) as last_sign_in_at')
.group('accounts.id')
Однако это работает, если с учетной записью не связаны логины account_logins, она не возвращается в запросе. Мой SQL довольно плох, но я нашел COALESCE через поиск в Google и попытался:
accounts
.confirmed_visible_with_completed_profile
.joins(:logins)
.select('accounts.*, COALESCE(max(account_logins.created_at), 0) as last_sign_in_at')
.group('accounts.id')
Однако это все равно не возвращает записи без привязки account_login. Из того, что я прочитал, COALESCE(max(account_logins.created_at), 0)
должно возвращать 0, если max (account_logins.created_at) равно NULL, поэтому я запутался, почему это не работает. Любая помощь очень ценится