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