SQL тест задача

  • Автор теми Автор теми ligorl
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 20.03.2010
Повідом.: 145
SQL тест задача

1. Выбор отдела и к-во сотрудников работающих в этом отделе?
2. Запрос возвращающий список имен работников работающие в отделе А1?

Я написал так:

1. SELECT DEPT_ID, COUNT(DISTINCT ID)
PROM EMP
GROUP BY DEPT_ID;

2. SELECT NAME
PROM EMP
WHERE DEPT_ID='A1';

Правильно я написал или нет?
Напишите как правильно...
Буду ждать ответа:)
 

Вкладення

  • SQLL.webp
    SQLL.webp
    12.8 КБ · Перегляди: 135
офигеть и не встать модель.

P.S. проверь запросом в базу. или есть какие-то сомнения?
 
Правильно я написал или нет?
 
правильно, если "PROM" заменить на "FROM" и имя отдела никому не нужно, но возникает вопрос зачем вам таблица "Dept" ;-)
 
Правильно я написал или нет?

вроде правильно. только я уже по поводу модели высказался.
да и в первом distinct нафиг не нужен. ведь 1 и тот же emp не может числиться в 1 dept 2 и более раз.
 
может у него в emp один товарищ записан несколько раз с одним ID, ввиду чего получает несколько ЗП, а он хочет это скрыть ;-)))
 
может у него в emp один товарищ записан несколько раз с одним ID, ввиду чего получает несколько ЗП, а он хочет это скрыть ;-)))

ну да как же без отмывания доходов и откатов. сейчас без этого никак :D
 
Дабы отобрать у троллей корм...

1.
SELECT d.Name, e.EmployeeCount
FROM (
SELECT Dept_ID, COUNT(ID) as EmployeeCount
FROM Emp
GROUP BY Dept_ID
) e,
Dept d
WHERE e.Dept_ID = d.ID
ORDER BY d.Name

2.
SELECT e.Name
FROM Emp e, Dept d
WHERE e.Dept_ID = d.ID
AND d.Name = 'A1'
ORDER BY e.Name
 
>Дабы отобрать у троллей корм...
...и отобрать у человека тягу к самообразованию...
 
>Дабы отобрать у троллей корм...
...и отобрать у человека тягу к самообразованию...
...которая безусловно моментально у него появилась от язвительного и бессмысленного троллинга выше...
 
еще как, если человек задумается над вышесказанным ;-)
но никак, если будет получать готовые ответы...
 
еще как, если человек задумается над вышесказанным ;-)
но никак, если будет получать готовые ответы...
Если человек выкладывает задачу и ждет готового, то тут потроллить святое дело. Но если он попытался решить и спрашивает правильно или нет, значит он действительно не знает, есть ли ошибка и в чем она. И туманно-размытые намеки не помогут. Если не *****, сможет сравнить и понять, что не так. Представьте, что вам на проверку ребенок принес домашнее задание, а вы как родитель вместо того, чтобы проверить, начинаете выделываться какой вы умный. Все когда-то с чего-то начинали, ошибались, и запросы в пеленках никто писать не умел.
 
>Представьте, что вам на проверку ребенок принес домашнее задание, а вы как родитель вместо того, чтобы проверить, начинаете выделываться какой вы умный.

Для начала... Если задача решена наполовину/не решена, я задаю наводящие вопросы, отвечая на которые, ребенок сам может дойти до правильного ответа..., что намного лучше, чем готовые ответы, развивает его способность мыслить...

Да и зачем мне представлять, я уже лет 7 с этим сталкиваюсь на практике... со стороны преподавателя...

>а через join не проще ли будет?
та вариантов масса... а вот проще или нет зависит от многих факторов...
да и по сути там итак join ;-)
 
Останнє редагування:
а через join не проще ли будет?
Проще, если JOIN существует там, где будет запускаться этот запрос. А так как задача скорее теоретическая и базы для проверки нет, то тот устаревший синтаксис, в котором я написал, предпочтительнее. Ибо он ближе к реляционной теории, а JOIN - к технической реализации.
 
Проще, если JOIN существует там, где будет запускаться этот запрос. А так как задача скорее теоретическая и базы для проверки нет, то тот устаревший синтаксис, в котором я написал, предпочтительнее. Ибо он ближе к реляционной теории, а JOIN - к технической реализации.

понял :пиво:. а то я не теоретик а практик и глядя со своей колокольни считаю что join будет и проще и быстрее (при определенных условиях. PK, indexes, etc).
 
Спасибо за ответ буду дальше разбираться
 
Назад
Зверху Знизу