|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.05.2010, 12:31 | #1 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 14
|
HAVING
Что делают этот код? Точнее, не понятно, как работает HAVING..
SELECT type, AVG(price) FROM titles GROUP BY type HAVING AVG(price) < (SELECT AVG(price) FROM titles); |
19.05.2010, 13:37 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Этот код сгруппирует по значению поля type, после чего вычислит AVG(price) а потом посмотрит меньше ли это вычисленное чем (SELECT AVG(price) FROM titles); Если да то вернет в набор, если нет то отбросит
HAVING в отличие от Where это условие для уже сгруппированных подсчетов, а не для каждой записи
I'm learning to live...
|
19.05.2010, 14:40 | #3 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 14
|
Спасибо! Не поможешь ещё с таким кодом:
SELECT state, COUNT(*) FROM publishers p WHERE EXISTS (SELECT * FROM titles t WHERE p.pub_id=t.pub_id) AND $22>ALL (SELECT price FROM titles t WHERE p.pub_id=t.pub_id AND price IS NOT NULL) GROUP BY state ORDER BY state ASC; |