powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Составление запроса с COUNT в mysql
2 сообщений из 2, страница 1 из 1
Составление запроса с COUNT в mysql
    #39138319
kostik34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Есть две таблицы менеджеры и заказы

Структура таблицы manager

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE `manager` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `first_name` VARCHAR(32) CHARACTER SET latin1 NOT NULL,
  `last_name` VARCHAR(32) CHARACTER SET latin1 NOT NULL,
  `email` VARCHAR(32) CHARACTER SET latin1 NOT NULL,
  `chief_id` INT(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `chief_id` (`chief_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;



Структура таблицы claim

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE `claim` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `manager_id` INT(11) NOT NULL,
  `created_at` datetime NOT NULL,
  `sum` FLOAT NOT NULL,
  PRIMARY KEY (`id`),
  KEY `manager_id` (`manager_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;



Ограничения внешнего ключа таблицы claim

Код: sql
1.
2.
3.
ALTER TABLE `claim`
  ADD CONSTRAINT `claim_ibfk_1` FOREIGN KEY (`manager_id`) 
  REFERENCES `manager` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;



Ограничения внешнего ключа таблицы manager

Код: sql
1.
2.
3.
ALTER TABLE `manager`
  ADD CONSTRAINT `manager_ibfk_1` FOREIGN KEY (`chief_id`) 
  REFERENCES `manager` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;



Помогите пожалуйста выбрать менеджеров, у которых количество заказов больше, чем у их руководителя. Не могу никак выбрать. Самый близкий вариант такой

Код: sql
1.
2.
3.
4.
SELECT a.first_name, b.first_name, COUNT( a.first_name ) , COUNT( b.first_name ) 
FROM manager a, manager b,  `claim` 
WHERE a.id = b.chief_id AND a.id = claim.manager_id 
GROUP BY a.first_name



Но куда впихнуть условие где count одного > count другого, ума не приложу. Если в WHERE ставлю
Код: sql
1.
AND COUNT( a.first_name ) > COUNT( b.first_name )


получаю ошибку Invalid use of group function если ставлю в having
Код: sql
1.
2.
3.
4.
SELECT a.first_name, b.first_name, COUNT( a.first_name ), COUNT( b.first_name )
 FROM manager a, manager b, claim WHERE a.id = b.chief_id 
AND a.id = claim.manager_id GROUP BY a.first_name 
HAVING COUNT( a.first_name ) > COUNT( b.first_name )

то ответ пустой получается.
...
Рейтинг: 0 / 0
Составление запроса с COUNT в mysql
    #39138337
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В подзапросе посчитай количество заказов "шефов", и в основном запросе используй полученные данные в условии отбора. А два COUNT пихать в один запрос бессмысленно - они требуют разных GROUP BY.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Составление запроса с COUNT в mysql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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