Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken
am 16.04.2008 15:28:18 von Frank ArthurMySQL 4.0.27
Folgender Query:
SELECT `id`
FROM `t5`
GROUP BY `id`
ORDER BY COUNT(*);
Gibt mir folgenden Fehler aus:
#1111 - Invalid use of group function
OK, ich könnte folgendes bentzen:
SELECT `id`, COUNT(*) AS `c`
FROM `t5`
GROUP BY `id`
ORDER BY `c`;
Aber das Problem ist, dass ich den SELECT in einem INSERT SELECT benutzen
will.
INSERT INTO `t6`
(`id`)
SELECT `id`
FROM `t5`
GROUP BY `id`
ORDER BY COUNT(*);
Da `t6` keine Spalte für das COUNT Ergebnis hat, kann ich den anderen
SELECT nicht benutzen, weil dann die Spaltenanzahl, natürlich, nicht
überein stimmt.
INSERT INTO `t6`
(`id`)
SELECT `id`, COUNT(*) AS `c`
FROM `t5`
GROUP BY `id`
ORDER BY `c`;
Hat jemand eine Idee?
Vielleicht kann man ja beim INSERT SELECT eine Spalte unterdrücken, die
COUNT-Spalte, aber da hab ich noch nichts gesehen.
MySQL 5.x macht keine Probleme bei dem ersten SELECT, aber leider kann
ich nicht updaten :-(
CREATE TABLE IF NOT EXISTS `t5` (
`id` int(10) unsigned NOT NULL,
`id2` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`,`id2`)
);
INSERT INTO `t5`
(`id`,`id2`)
VALUES (1,1)
, (1,2)
, (2,1);
CREATE TABLE IF NOT EXISTS `t6` (
`id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
);