powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как посчитать количество сгруппированых полей?
3 сообщений из 3, страница 1 из 1
Как посчитать количество сгруппированых полей?
    #33447119
Andrew4fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая таблица.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE `pr` (
  `group_code` int( 5 ) unsigned NOT NULL default '0',
  `pr_name` varchar( 255 ) NOT NULL default '',
  `pr_comm` int( 5 ) unsigned NOT NULL default '0'
);

INSERT INTO `pr` VALUES ( 14113 , 'Front', '1');
INSERT INTO `pr` VALUES ( 14113 , 'Front', '2');
INSERT INTO `pr` VALUES ( 14113 , 'Front', '3');

INSERT INTO `pr` VALUES ( 14113 , 'Back', '3');
INSERT INTO `pr` VALUES ( 14113 , 'Back', '2');

INSERT INTO `pr` VALUES ( 14114 , 'Bottom', '1');
INSERT INTO `pr` VALUES ( 14114 , 'Bottom', '3');
INSERT INTO `pr` VALUES ( 14114 , 'Up', '1');
INSERT INTO `pr` VALUES ( 14114 , 'Side', '3');

Мне необходимо посчитать количество уникальных имен (pr_name) в каждой группе (group_code), т.е. по группе 14113 результат 2, а в группе 14114 - 3.
Значения поля pr_name может повторятся только в одной группе.
Сейчас у меня такой запрос:
Код: plaintext
CREATE TABLE temp SELECT * FROM pr GROUP by pr_name ORDER by group_code DESC
и потом
Код: plaintext
SELECT group_code, count(group_code) FROM `temp` GROUP BY group_code
А как бы это сделать одним запросом без создания временной таблицы?

Заранее спасибо за помощь!
...
Рейтинг: 0 / 0
Как посчитать количество сгруппированых полей?
    #33447317
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SELECT COUNT(DISTINCT `pr_name`) AS `cnt`, `group_code` FROM `pr` GROUP BY `group_code`;
Только индекс не забудьте:
Код: plaintext
ALTER TABLE `pr` ADD INDEX (`group_code`, `pr_name`);

ЗЫ. Все б вопросы такие внятные были)
...
Рейтинг: 0 / 0
Как посчитать количество сгруппированых полей?
    #33447534
Andrew4fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо! Работает как часы!

P.S.
А ведь я копал в сторону Distinct, но видать не до конца докопал :-)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как посчитать количество сгруппированых полей?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]