Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запросы / 16 сообщений из 16, страница 1 из 1
26.03.2014, 12:27:18
    #38596792
лилия90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
Помогите составить запрос, если имеется например
Студент с полями
id_st,
firstname,
iname.
и оценки для него
id_eval,
id_stud,
evaluation
Оценок много, надо выбрать теx студентов, у кого оценки только 5ки, В конце нужна таблица с firstname
...
Рейтинг: 0 / 0
26.03.2014, 12:48:09
    #38596821
Запросы
not exists
...
Рейтинг: 0 / 0
26.03.2014, 12:52:41
    #38596828
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
Добрый Э - Эхnot exists
то будут в т.ч. мёртвые студенты, не имеющие ни одной

а та - да. именно
Код: sql
1.
2.
3.
SELECT * FROM студенты WHERE
 not exists(SELECT 1 FROM оценки WHERE студенты.судент=оценки.студент
    AND оценки.оценка<>5)
...
Рейтинг: 0 / 0
26.03.2014, 13:17:50
    #38596864
Запросы
qwwqДобрый Э - Эхnot exists
то будут в т.ч. мёртвые студенты, не имеющие ни одной
тогда рисуй запрос с INNER JOIN + group by + Having...
Уж точно попадут только отличники. :)
...
Рейтинг: 0 / 0
26.03.2014, 13:21:10
    #38596868
Запросы
qwwq,

или к своему с NOT EXISTS добавь ещё и EXISTS-подзапрос, на проверку наличия "пятерки"
...
Рейтинг: 0 / 0
26.03.2014, 13:24:04
    #38596873
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
Добрый Э - Эхqwwq,

или к своему с NOT EXISTS добавь ещё и EXISTS-подзапрос, на проверку наличия "пятерки"дык я ж вроде не спрашивал ? не ?
вы где-то увидели обратное?


я просто указал, что предложенное вами решение решает немного другую задачу. хотя и смежную.
...
Рейтинг: 0 / 0
26.03.2014, 17:40:56
    #38597279
Запросы
qwwq,

а я и не давал точных рекомендаций, а лишь направление поиска с оставленным пространством для буйства авторской фантазии...
...
Рейтинг: 0 / 0
27.03.2014, 00:31:11
    #38597561
victor_kr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
SELECT студенты.id_st, студенты.firstname
FROM студенты
INNER JOIN оценки ON студенты.id_st = оценки.id_stud
WHERE оценки.evaluation = 5
GROUP BY студенты.id_st, студенты.firstname
...
Рейтинг: 0 / 0
27.03.2014, 05:05:38
    #38597601
biwed.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
victor_krSELECT студенты.id_st, студенты.firstname
FROM студенты
INNER JOIN оценки ON студенты.id_st = оценки.id_stud
WHERE оценки.evaluation = 5
GROUP BY студенты.id_st, студенты.firstname
Ответ не правильный. У этих студентов могут быть четверки, тройки и тд. Без подзапросов не вижу решения.
qwwq
Код: sql
1.
2.
3.
SELECT * FROM студенты WHERE
 not exists(SELECT 1 FROM оценки WHERE студенты.судент=оценки.студент
    AND оценки.оценка<>5)


У qwwq ответ был ближе, хотя учитывает студентов, которые не имеют оценок вообще. Как уже писали нужна еще одна проверка в where на условие присутствия ключей студентов в списке оценок.
...
Рейтинг: 0 / 0
27.03.2014, 05:15:27
    #38597604
Запросы
biwed.ruБез подзапросов не вижу решения. странно, что не видишь... Тем более, что решение было озвучено: group by + having (без where). Другое дело что такое решение будет не самым оптимальным....
...
Рейтинг: 0 / 0
27.03.2014, 09:10:30
    #38597674
biwed.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
Добрый Э - Эхbiwed.ruБез подзапросов не вижу решения. странно, что не видишь... Тем более, что решение было озвучено: group by + having (без where). Другое дело что такое решение будет не самым оптимальным....
Ну не совсем с тобой соглашусь, так как по условию задачи нужно вывести: "В конце нужна таблица с firstname" - это одно поле. Поэтому без подзапроса и не вижу. :)
При большем количестве полей можно и с "INNER JOIN + group by + Having."
...
Рейтинг: 0 / 0
01.04.2014, 21:31:28
    #38602401
лилия90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
всем спасибо за помощь
...
Рейтинг: 0 / 0
05.04.2014, 09:54:05
    #38605980
лилия90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
biwed.ru, у меня еще один вопрос, если конечно вам не сложно рассмотреть, а как можно вывести ударников, не включая отличников
...
Рейтинг: 0 / 0
05.04.2014, 12:51:29
    #38606042
biwed.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
Добрый день,
лилия90
лилия90biwed.ru, у меня еще один вопрос, если конечно вам не сложно рассмотреть, а как можно вывести ударников, не включая отличников
Не совсем понятно определение "Ударников". Сформулируйте задачу корректнее, а то не понятно кто они такие.

С уважением,
biwed.ru
...
Рейтинг: 0 / 0
05.04.2014, 13:01:56
    #38606051
Ы ?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM студенты WHERE
exists(SELECT 1 FROM оценки WHERE студенты.судент=оценки.студент
    AND оценки.оценка=4) -- т.е. не отличник
AND  not exists(SELECT 1 FROM оценки WHERE студенты.судент=оценки.студент
    AND оценки.оценка IN (1,2,3) /*NOT IN (4,5)*/ ) -- т.е. не 123-ник
...
Рейтинг: 0 / 0
06.04.2014, 20:30:07
    #38606620
лилия90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запросы
Ы ?Спасибо большое
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запросы / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]