Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подсчет количества записей по значениям [D7, MSSQL]


Vantage-10 ©   (2005-01-14 12:07:00) 

Кто подскажет как сделать подобный SQL запрос?
Есть результат в виде:
значение1
значение1
значение1
значение2
значение2
значение3
значение3
значение3

Как получить следующий вид:
значение1|3 записи
значение2|2 записи
значение3|3 записи


Нуждающийся в помощи   (2005-01-16 16:45:00) [1]

Да, к слову, разобрался почему не работал мой исходный вариант:
все дело в последовательности, в которой выполняется объединение и проверка условий/вычисление агрегатных функций


Нуждающийся в помощи   (2005-01-16 16:43:00) [2]

Нет, не лень...
Но вопросы мне показались схожими, а веток разнообразных тут и так хватает:)


Anatoly Podgoretsky   (2005-01-14 18:49:00) [3]

Нуждающийся в помощи   (14.01.05 16:26) [4]
Новую ветку создавать не буду

Это что лень?


Нуждающийся в помощи   (2005-01-14 17:51:00) [4]

Плохиш ©   (14.01.05 17:30) [7]
Респект
Все работает:)


Плохиш   (2005-01-14 17:30:00) [5]

select name, (select count(*) from t1 where t1.id=myid) as w1, (select ...) ...


Нуждающийся в помощи   (2005-01-14 17:30:00) [6]

Вот так я пытаюсь это сделать:
select STUD.FAM, count(LEKC.STUDE_CODE), count(LAB.STUDE_CODE) from STUD, LEKC, LAB
where (STUD LEFT JOIN LEKC ON STUD.CODE = LEKC.STUD_CODE) LEFT JOIN LAB ON STUD.CODE = LAB.CODE
group by STUD.FAM

В итоге я получаю таблицу с тремя полями, но значения в агрегатных полях совпадают, т.е. я получаю что-то подобное:

aaa | 10 | 10
bbb | 01 | 01
ccc | 12 | 12

Хотя должен что-т такое:

aaa | 11 | 03
bbb | 14 | 07
ccc | 09 | 01


Нуждающийся в помощи   (2005-01-14 17:22:00) [7]

Если имеется в виду UNION - этим я сделаю "вертикальное соединение"...
мне же нужно "горизонтальное"
а исползуя inner/left/right join я получаю все время неверные результаты:(

вот и решил спросить у знающих людей


Johnmen   (2005-01-14 17:18:00) [8]

Делать соединение таблиц. См. SQL.


Нуждающийся в помощи   (2005-01-14 16:26:00) [9]

Новую ветку создавать не буду, спрошу здесь - вопросы родственные:
а если усложнить ситуацию до трех таблиц -
1. список студентов
2. список лекций, где отмечается какие лекции какие студенты посещали
3. список лабораторных, где отмечается какие лабораторные какие студенты посещали

нужно получить сводную таблицу:
1. фамилия студента
2. количестов посещенных лекций
3. количество посещенных лабораторных

как это реализовать в одном запросе?


DSKalugin   (2005-01-14 12:13:00) [10]

select field, count(field)
from table
group by field


Роман Снегирев   (2005-01-14 12:11:00) [11]

select значение, count(значение) from table group by значение


Johnmen   (2005-01-14 12:10:00) [12]

LocalSQL.hlp : GROUP BY


Наверх

Титульная страница Поиск, карта сайта Написать письмо