@Pho_en_ix

Как получить несколько выводов из одной таблицы?

Не могу до конца составить запрос.
Имеется следующая таблица
Таблица
CREATE TABLE `test` (
`id` int(11) NOT NULL,
`map` varchar(64) NOT NULL,
`uid` int(11) NOT NULL,
`best` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


С текущими данными
Данные
INSERT INTO `test` (`id`, `map`, `uid`, `best`) VALUES
(1, 'xx2', 1, 1),
(2, 'xx3', 1, 1),
(3, 'xx2', 2, 0),
(4, 'xx4', 2, 1),
(5, 'xx2', 3, 0);


Также, есть запрос:
SELECT *, COUNT(map) as countmaps FROM test GROUP BY uid ORDER BY countmaps DESC

На выходе я получаю:
UID - COUNTMAPS
1 - 2
2 - 2
3 - 1

То есть, результат каждого UID и их количество `map`. Но мне нужно получить что-то вроде:
UID - COUNTMAPS - COUNT_BEST_MAPS
1 - 2 - 2
2 - 2 - 1
3 - 1 - 0

То есть, нужно вывести список UID`ов, количество их общих записей (что есть и сейчас), при этом рядом добавить количество записей, где `best` = 1
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
solotony
@solotony
code for food, caviar preferably
если `best` = 1 или 0 то сделай

COUNT(*) as COUNTMAPS , SUM(best) COUNT_BEST_MAPS WHERE ... GROUP BY uid
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы