Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
11.04.2020, 00:20
|
|||
---|---|---|---|
|
|||
Выборка по каждой строке |
|||
#18+
Добрый день спецы по SQL ) Такая ситуация. Есть две таблицы. Первая "Группы": КОД | ГРУППА(int) Вторая таблица "Данные": КОД | ГРУППА(int) | ПАРАМЕТР(str) В своем проекте я реализовал задачу так: делаю первый запрос, получаю список групп удовлетворяющим условию. Например Группы.ГРУППА > 50 Сохраняю все полученные номера. Потом по каждому номеру группы делаю второй запрос - SELECT COUNT(*) FROM Данные WHERE ГРУППА=*Один из сохраненных номеров* По сути я получаю количество строк для каждой отобранной группы. А теперь вопрос. Не знаю как будет это в плане производительности, но как сделать это в одном запросе? Что бы для каждой из строк, отобранных в первом запросе, добавлялась еще одна колонка, в которой будет подсчет строк для этой группы. Вроде бы делал такое очень давно. Но память подводит ) Прошу помощи ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 12:50
|
|||
---|---|---|---|
|
|||
Выборка по каждой строке |
|||
#18+
sdku, это функция из скриптов vb в access. Моя программа не работает с этими функциями. Можно реализовать это в самом запросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 13:00
|
|||
---|---|---|---|
Выборка по каждой строке |
|||
#18+
Siompc, просто count() ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 13:08
|
|||
---|---|---|---|
|
|||
Выборка по каждой строке |
|||
#18+
ИВП, Я знаю. Но каким образом ее вставить, что бы она считала для каждой строки первой выборки разные значения? НАПРИМЕР: SELECT Группы.КОД WHERE Группы.ГРУППА>4 - здесь получили список из кодов, например, 5,8,9. Только в этом же запросе нужно чтобы рядом с кодом 5 был столбец, показывающий количество строк во второй таблце. Как будто выполнен запрос SELECT COUNT(*) FROM Данные WHERE Данные.ГРУППА=5 (8,9) Как это объединить в 1 запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 13:18
|
|||
---|---|---|---|
|
|||
Выборка по каждой строке |
|||
#18+
Тут напрашивается цикл с перебором номеров групп, но насколько я помню в sql нет такой функции. Я бы сам сделал это на 2 циклах с рекордсетами. 1 перебирает номера, 2 выводит кол-во. Рекордсеты и циклы, по-моему, есть в любой программе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 13:22
|
|||
---|---|---|---|
|
|||
Выборка по каждой строке |
|||
#18+
nik26 Тут напрашивается цикл с перебором номеров групп, но насколько я помню в sql нет такой функции. Или я не понял и тут плохое объяснение ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 13:22
|
|||
---|---|---|---|
|
|||
Выборка по каждой строке |
|||
#18+
Siompc, Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 13:28
|
|||
---|---|---|---|
Выборка по каждой строке |
|||
#18+
Siompc Как это объединить в 1 запрос? count() обычно идет с GROUP BY... Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 13:52
|
|||
---|---|---|---|
|
|||
Выборка по каждой строке |
|||
#18+
nik26 Тут напрашивается цикл с перебором номеров групп, но насколько я помню в sql нет такой функции. Я бы сам сделал это на 2 циклах с рекордсетами. 1 перебирает номера, 2 выводит кол-во. Рекордсеты и циклы, по-моему, есть в любой программе. Да, я так и сделал. Думал просто объединить это в один запрос и получить сразу все значения )) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 15:45
|
|||
---|---|---|---|
Выборка по каждой строке |
|||
#18+
поправил vmag Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 15:57
|
|||
---|---|---|---|
Выборка по каждой строке |
|||
#18+
Панург, Ну да, так наверное правильнее, но результат скорее всего будет одинаковый ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.04.2020, 17:24
|
|||
---|---|---|---|
Выборка по каждой строке |
|||
#18+
vmag Панург, Ну да, так наверное правильнее, но результат скорее всего будет одинаковый WHERE - сначала фильтруем множество и далее работаем с полученным HAVING - сначала работаем со всем множеством и уже в заключении фильтруем. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1610145]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 400ms |
0 / 0 |