Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2013, 08:43   #1
Reaper052
Пользователь
 
Аватар для Reaper052
 
Регистрация: 07.06.2012
Сообщений: 16
По умолчанию [SQL] Разобрать запрос

Помогите разобрать запрос, что выполняет каждая строка
Код:
SELECT state 
FROM publishers p1 
GROUP BY state 
HAVING COUNT(DISTINCT pub_name)= 
(SELECT COUNT(*) 
FROM publishers p2 
WHERE EXISTS 
(SELECT * 
FROM titles t 
WHERE p2.pub_id=t.pub_id) 
AND $22.5>ALL
(SELECT price 
FROM titles t 
WHERE p2.pub_id=t.pub_id AND price IS NOT NULL)
GROUP BY state 
HAVING p1.state=p2.state)
В частности не совсем понимаю, что делается начиная с четвертой строки "HAVING COUNT"
Reaper052 вне форума Ответить с цитированием
Старый 12.06.2013, 09:39   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

HAVING - то же самое, что и where только для вычисляемых полей, функций и условий group
count - считает кол-во
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 12.06.2013, 09:58   #3
Reaper052
Пользователь
 
Аватар для Reaper052
 
Регистрация: 07.06.2012
Сообщений: 16
По умолчанию

Спасибо, но мне бы конкретнее, что считается, из какой таблицы и т.д. определение команд у меня в общем-то есть.
Reaper052 вне форума Ответить с цитированием
Старый 12.06.2013, 10:18   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
определение команд у меня в общем-то есть
дык в определении команд и их параметров все и описано
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.06.2013, 10:22   #5
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
По умолчанию

с моим 2х месячным знанием SQL...
вроде бы так:
___
выбрать state из табл publishers p1 с группировкой по state, где общее кол-во ячеек в (pub_name (c запрещением вывода одинаковых строк)) = значению кол-ва ячеек из табл 2, где EXIST( Возвращает значение TRUE, если вложенный запрос содержит хотя бы одну строку) все поля из табл titles где p2.pub_id=t.pub_id (связь 2-х табл) и все price из табл titles где p2.pub_id=t.pub_id AND price IS NOT NULL (связь 2-х табл и price не нулевое) < $22.5 с группировкой по state где p1.state=p2.state)
_________
как-то так...
просьба не ругаться, если ошиблась :P
Есть задача - реши ее!

Последний раз редактировалось ТипичныйСтудент; 12.06.2013 в 18:36.
ТипичныйСтудент вне форума Ответить с цитированием
Старый 12.06.2013, 10:37   #6
Reaper052
Пользователь
 
Аватар для Reaper052
 
Регистрация: 07.06.2012
Сообщений: 16
По умолчанию

Благодарю, вроде все логично =)
Reaper052 вне форума Ответить с цитированием
Старый 12.06.2013, 10:41   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
SELECT state
FROM publishers p1
GROUP BY state
HAVING COUNT(DISTINCT pub_name)=(
SELECT COUNT(*) FROM publishers p2 WHERE EXISTS (
SELECT * FROM titles t WHERE p2.pub_id=t.pub_id
) AND $22.5>ALL (SELECT price FROM titles t WHERE p2.pub_id=t.pub_id AND price IS NOT NULL
)
GROUP BY state
HAVING p1.state=p2.state)
Выбрать все состояния редакций без повторений, где количество публикаций равно количеству изданий редакций при условии что у них существуют эти издания, которые (а вот дальше я смутно понял слово ALL) стоят больше 22 бакса с половиной.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
SQL запрос Zibiv Помощь студентам 4 09.12.2009 22:07
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
Помогите разобрать запрос mysql iankov SQL, базы данных 2 04.01.2009 14:03
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15