Email or username:

Password:

Forgot your password?
Мя :sparkles_lesbian:

Чет прекол. Вот есть SQL запрос

SELECT ... FROM ... (вместо ... длинный список полей и сложное выражение, не суть!)

Всё работает как надо, возвращает много строк

Теперь добавляем в селект количество выбранных строк...

SELECT ..., COUNT(*) as total FROM ...

...и теперь селектится только одна строка. Загадка Жака Фрески: почему? Вернее, какого??

9 comments
Мя :sparkles_lesbian:

Окей, странное поведение воспроизводится даже если сделать самый банальнейший SELECT field, field2, COUNT(*) FROM table, без сложных выражений...

Мя :sparkles_lesbian:

Ага, это была ловушка SQL джокера. Чтобы задуманное работало, надо писать COUNT(*) OVER ()

Вопрос какого всё ещё актуален, но теперь у меня хотя бы есть решение

MrClon

@mo потому что COUNT так работает. Считает колличество строк в выдаче. Т.е. сумаризирует её в одно значение

Мя :sparkles_lesbian:

@MrClon кмк лучше бы он выдавал ошибку, когда неочевидно что хочет автор запроса.

Мя :sparkles_lesbian:

@hardworm в условиях, когда неочевидно что именно аггрегировать лучше выдать ошибку, чем вот это

Мертвый голубь Стаса

@mo вроде posgresql так и делает. А вот остальные будут делать что-то

Мя :sparkles_lesbian:

@hardworm я имею ввиду, хорошо бы такое поведение в стандарте прописать

Go Up