Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
Всем добрый денек! Есть задача вывести имя компании, у которой наибольшее число сотрудников. Я считерил, так как данных мало и нашел таки эту компанию с 4мя сотрудниками, а вот если данных миллион, то как мне искать, у меня нет больше мыслей. дайте направление в нужную сторону. Малости не хватает. SELECT c.company_name FROM company c INNER JOIN employee e ON c.cid = e.cid GROUP BY company_name HAVING COUNT(enployee_name) > 3 запрос выводит верный результат gamma ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 14:39 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 14:53 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
iap, Спасибо, а можно объяснить принцип работы данного запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 15:16 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
dermamaiap, Спасибо, а можно объяснить принцип работы данного запроса? Ничего особо сложного. Связываем таблицу "компании" с таблицей "сотрудники". Получаем промежуточный резалтсет "компания-сотрудники" Группируем полученный промежуточный резалтсет по имени компании - получаем список компаний (уникальные названия). Сортируем полученный сгруппированный резалтсет по количеству строк с одинаковым названием компании по убыванию. Извлекаем из отсортированной выборки 1 строку "с кандидатами", т.к. может оказаться более 1 компании с наибольшим числом сотрудников. Будет работать, если среди компаний нет полных тёзок. Если полные тёзки есть - может иногда работать неверно. Я бы, например, так лаконично не написал. Я бы во внутреннем подзапросе посчитал выборку: компания - количество сотрудников, а во внешнем - отобрал бы top(1) with ties. Инерция мышления, разница в классе и всё такое. Снимаю шляпу. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 16:17 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
uaggster, 3 SELECT TOP(1) WITH TIES c.company_name 1 FROM company c JOIN employee e ON c.cid = e.cid 2 GROUP BY c.company_name 4 ORDER BY COUNT(*) DESC; я поставил номера в каком порядке он выполняется, верно? кстати, если не сложно, напиши свой вариант запроса по данному заданию пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 16:26 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
dermamaя поставил номера в каком порядке он выполняется, верно?Как выполняется запрос смотрят в его плане выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 16:37 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
dermamauaggster, 2 SELECT TOP(1) WITH TIES c.company_name 1 FROM company c JOIN employee e ON c.cid = e.cid 2 GROUP BY c.company_name 3 ORDER BY COUNT(*) DESC; я поставил номера в каком порядке он выполняется, верно? кстати, если не сложно, напиши свой вариант запроса по данному заданию пожалуйста. Нет, неверно. invm , да он про логическую последовательность, а не про физическую. :-) dermama Логический порядок обработки инструкции SELECT: FROM ON JOIN where GROUP BY WITH CUBE или WITH ROLLUP HAVING SELECT DISTINCT ORDER BY TOP т.е. ты - должен думать так. Как думает sqlserver, как сказал invm - можно посмотреть в плане. Иногда (эээ... всегда :-) ) sqlserver думает не так, как предписывает логический порядок выполнения запроса. Но результат всегда такой, как если бы логический порядок выполнения неукоснительно соблюдался. ... но есть нюансы. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 16:52 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
Пардон, наверху 4, конечно же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 16:53 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
uaggster, Спасибо, познавательно, про ордер я поставил на четвертое место, подумав что он заселектит и отсортирует потом) читаю сейчас книжку сборник рецептв SQL Энтони молинаро, там затронут был момент логической последовательности, но не вся. Так просто понимание приходит получше, однако пока над принципом работы запроса по выборке компании с наибольшим числом сторудников все еще думаю... (например вода кипит при 100 градусах - на уровне инстинкта , автоматика), чего не скажешь про это запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 17:01 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
dermamaнапример вода кипит при 100 градусах - на уровне инстинкта , автоматика Вид homo sapiens еще не научился определять температуру на уровне инстинктов. Так что поведай нам, с какой ты планеты, родной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 17:23 |
|
||
|
в Gamma больше всего
|
|||
|---|---|---|---|
|
#18+
dermamauaggster, Спасибо, познавательно, про ордер я поставил на четвертое место, подумав что он заселектит и отсортирует потом) читаю сейчас книжку сборник рецептв SQL Энтони молинаро, там затронут был момент логической последовательности, но не вся. Так просто понимание приходит получше, однако пока над принципом работы запроса по выборке компании с наибольшим числом сторудников все еще думаю... (например вода кипит при 100 градусах - на уровне инстинкта , автоматика), чего не скажешь про это запрос. Логический порядок обработки инструкции SELECT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 18:08 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1688464]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
81ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 270ms |
| total: | 435ms |

| 0 / 0 |
