В MySQL я не могу группировать три отдельных столбца данных через предложение GROUP BY.MySQL - предложение GROUP BY рекурсивно?
Этот образец содержит четыре марки, каждая марка имеет 2 модели и 4 версии двигателей. Мне нужно извлечь 4 автомобиля марки, модель и версия двигателей разные. Поистине уникальный результат в 3 колонках.
----------+--------+----------+
Brand | Model | Version |
----------+--------+----------+
Renault | Clio | Essence |
Citroen | C4 | GPL |
Ford | Fiesta | Gazole |
Peugeot | 206 | Electric |
----------+--------+----------+
Это работает 8/10.
SELECT brand, model, version
FROM cars WHERE version = (SELECT version FROM cars GROUP BY version ORDER BY RAND() LIMIT 1)
GROUP BY brand
Пример таблицы
CREATE TABLE IF NOT EXISTS `cars` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`brand` varchar(255) NOT NULL,
`model` varchar(255) NOT NULL,
`version` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=COMPRESSED;
INSERT INTO `cars` (`id`, `brand`, `model`, `version`) VALUES
(1, 'Renault', 'Clio ', 'Essence'),
(2, 'Renault', 'Clio ', 'Gazole'),
(3, 'Renault', 'Clio ', 'GPL'),
(4, 'Renault', 'Clio ', 'Electric'),
(5, 'Renault', 'Modus', 'Essence'),
(6, 'Renault', 'Modus', 'Gazole'),
(7, 'Renault', 'Modus', 'GPL'),
(8, 'Renault', 'Modus', 'Electric'),
(9, 'Peugeot', '307', 'Essence'),
(10, 'Peugeot', '307', 'Gazole'),
(11, 'Peugeot', '307', 'GPL'),
(12, 'Peugeot', '307', 'Electric'),
(13, 'Peugeot', '206', 'Essence'),
(14, 'Peugeot', '206', 'Gazole'),
(15, 'Peugeot', '206', 'GPL'),
(16, 'Peugeot', '206', 'Electric'),
(17, 'Citroen', 'C4', 'Essence'),
(18, 'Citroen', 'C4', 'Gazole'),
(19, 'Citroen', 'C4', 'GPL'),
(20, 'Citroen', 'C4', 'Electric'),
(21, 'Citroen', 'C5', 'Essence'),
(22, 'Citroen', 'C5', 'Gazole'),
(23, 'Citroen', 'C5', 'GPL'),
(24, 'Citroen', 'C5', 'Electric'),
(25, 'Ford', 'Focus', 'Essence'),
(26, 'Ford', 'Focus', 'Gazole'),
(27, 'Ford', 'Focus', 'GPL'),
(28, 'Ford', 'Focus', 'Electric'),
(29, 'Ford', 'Fiesta', 'Essence'),
(30, 'Ford', 'Fiesta', 'Gazole'),
(31, 'Ford', 'Fiesta', 'GPL'),
(32, 'Ford', 'Fiesta', 'Electric');
Чувак, ты говоришь GROUPE BY ???? – Minh
Результат, похоже, не является группой. Пожалуйста, добавьте больше деталей !!! – thisisbobbs
Я не вижу связи между вашей таблицей и желаемым результатом. Можете ли вы объяснить критерии для определения результата? –