Упражнение 3 (рейтинговый этап)
Упражнение 3 (рейтинговый этап)
Для таблицы Product получить результирующий набор в виде таблицы со столбцами maker, pc, laptop и printer, в которой для каждого производителя требуется указать, производит он (yes) или нет (no) соответствующий тип продукции. В первом случае (yes) указать в скобках без пробела количество имеющихся в наличии (т.е. находящихся в таблицах PC, Laptop и Printer) различных по номерам моделей соответствующего типа.
Если производитель выпускает модели некоторого типа, но ни одной из них нет в наличии, то, согласно формулировке, результат должен быть
yes(0),
а не
no
Многие находят «ошибку» в тестовом решении. Претензии сводятся к следующему запросу:
SELECT COUNT(*)
FROM Product
WHERE Maker = 'E' AND type='PC';
mssql
🚫
[[ error ]]
[[ column ]] |
---|
[[ value ]] |
«…указать в скобках без пробела количество имеющихся в наличии (т.е. находящихся в таблицах PC, Laptop и Printer) различных по номерам моделей соответствующего типа…»
Это в нашем случае означает, что в скобках требуется указать число различных моделей ПК производителя Е в таблице PC. На языке SQL это можно записать так:
SELECT COUNT(DISTINCT pc.model)
FROM Product pr
JOIN PC ON pr.model=pc.model
WHERE Maker = 'E';
mssql
🚫
[[ error ]]
[[ column ]] |
---|
[[ value ]] |
1