Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 2
1

Запрос max(count() с группировкой по годам

16.12.2015, 19:56. Показов 2293. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер!

Есть таблица res, в ней 3 столбца birth_date, res_name, sex.
Подскажите, возможно ли в рамках одного запроса извлечь из базы самые популярные имена (чаще повторяющиеся) как мужские, так и женские с группировкой по годам рождения.

Чтобы на выходе выглядело так:
1999 м Сергей
1999 ж Анна
2000 м Андрей
2000 ж Наталья
...
Причем в birth_date хранится дата в формате дд.мм.гггг
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2015, 19:56
Ответы с готовыми решениями:

Запрос max из count
Здравствуйте. Столкнулся с такой задачей. Есть БД содержащая инфу о грузоперевозках по...

Запрос MAX(COUNT(*)
Было получено задание, по работе с системным каталогом: выбрать пользователя имеющее максимальное...

SQL запрос на выборку количества записей по годам
Здравствуйте! Помогите пожалуйста! Имеется таблица с полями Описание события и дата события....

Sql MAX( COUNT)
Можно ли составить такой запрос. НУжно вытащить Имя города, Колличество Квартир, Цена за...

3
3499 / 2083 / 742
Регистрация: 02.06.2013
Сообщений: 5,078
16.12.2015, 23:33 2
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
declare @t table (birth_date date, sex char(1), res_name varchar(30));
 
insert into @t
values
 ('20000101', 'м', 'Гриша'),
 ('20000101', 'м', 'Гриша'),
 ('20000201', 'ж', 'Маша'),
 ('20000201', 'ж', 'Маша'),
 ('20000202', 'ж', 'Жанна'),
 ('20000103', 'м', 'Коля'),
 ('20010101', 'м', 'Петя'),
 ('20010101', 'м', 'Петя'),
 ('20010101', 'м', 'Вася'),
 ('20010101', 'м', 'Юра'),
 ('20010101', 'ж', 'Оля'),
 ('20010101', 'ж', 'Оля'),
 ('20010101', 'ж', 'Катя');
 
with a as
(
 select
  year(birth_date) as [year], sex, res_name,
  row_number() over (partition by year(birth_date), sex order by count(*) desc) as rn
 from
  @t
 group by
  year(birth_date), sex, res_name
)
select
 [year], sex, res_name
from
 a
where
 rn = 1
order by
 [year];
0
0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 2
17.12.2015, 11:24  [ТС] 3
invm, спасибо большое за ответ!
Возможно ли модифицировать запрос, не используя over (partition by year....) чтобы запрос можно было использовать в MS Access?
И я не совсем точно описала задачу, создавать таблицу не надо, нужна просто выборка из существующей.
0
3499 / 2083 / 742
Регистрация: 02.06.2013
Сообщений: 5,078
17.12.2015, 12:24 4
Вопросы по MS Access нужно задавать в профильном форуме.
1
17.12.2015, 12:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2015, 12:24
Помогаю со студенческими работами здесь

Выбрать MAX из COUNT
Требуется выбрать сотрудника, который заключил максимальное количество договоров. SELECT...

Поиск max из count значений
Добрый день! Есть задание: Вывести название, жанр и автора самого читаемого издания. Сделал...

Использование Count() в сочетании с MAX() и MIN()
Добрый день! Очень надеюсь на Вашу помощь. Две таблицы: "Рейсы" и "Билеты". Из первой мы берем...

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

Запрос с группировкой
Есть такой запрос в нем нужно сгруппировать по полю "RFIDметка". при выполнении выскакивает ошибка:...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru