Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Select select select ... selee ... se . s  [new]
Ymnika
Member

Откуда:
Сообщений: 1
Здравствуйте, сам изучаю sql с 0, подскажите пожалуйста по задаче, дана таблица T1 с двумя полями: Code - номер студента ( могут повторяться) и Mark - его оценка. Задача: Посчитать количество пятерок у двоечников, если двоечником считается студент с более чем одной двойкой. Можно ли это упростить или написать лучше в целом?
SELECT Count (c.Mark) FROM
(SELECT  T1.Code, T1.Mark FROM T1 
  INNER JOIN 
   (SELECT a.Code FROM
     (SELECT Code, Mark FROM T1  Where Mark = 2) a
    GROUP BY a.Code 
    HAVING Count(a.Mark)>1
    ) b 
  ON T1.Code = b.Code
) c
WHERE c.Mark =5;
3 июл 17, 22:55    [20610766]     Ответить | Цитировать Сообщить модератору
 Re: Select select select ... selee ... se . s  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
select
 Code,
 sum(case when Mark = 5 then 1 else 0 end)
from
 T1
group by
 Code
having
 sum(case when Mark = 2 then 1 else 0 end) > 1;
3 июл 17, 23:14    [20610794]     Ответить | Цитировать Сообщить модератору
 Re: Select select select ... selee ... se . s  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20198
invm, в HAVING больше нуля, вероятно?
4 июл 17, 07:45    [20610934]     Ответить | Цитировать Сообщить модератору
 Re: Select select select ... selee ... se . s  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1066
Akina,

с более, чем одной двойкой
4 июл 17, 08:43    [20611032]     Ответить | Цитировать Сообщить модератору
 Re: Select select select ... selee ... se . s  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
waszkiewicz
Akina,

с более, чем одной двойкой
Это была поправка к "> 1" в ответе invm
4 июл 17, 10:30    [20611334]     Ответить | Цитировать Сообщить модератору
 Re: Select select select ... selee ... se . s  [new]
kombala
Member

Откуда:
Сообщений: 41
iap,

Так ведь двоек должно быть больше одной, поэтому и '> 1'
4 июл 17, 12:09    [20611711]     Ответить | Цитировать Сообщить модератору
 Re: Select select select ... selee ... se . s  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
kombala
iap,

Так ведь двоек должно быть больше одной, поэтому и '> 1'
Точно.
Прочитал ещё раз - я был неправ.
4 июл 17, 12:43    [20611862]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить