Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken
MySQL 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`)
);
Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spaltenunterdruecken
> begin Frank Arthur schrieb:
>> MySQL 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
Andreas Kretschmer schrieb:
> Zu was soll einklich das ORDER im select oben dann nützlich sein? Diese
> Info geht doch eh den Bach runter.
Für ein LIMIT, dass im Original Query noch vorhanden ist.
Also so:
SELECT `id`
FROM `t5`
GROUP BY `id`
ORDER BY COUNT(*)
LIMIT 1
Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spaltenunterdruecken
>>>> MySQL 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
>>
>>> Zu was soll einklich das ORDER im select oben dann nützlich sein?
>>> Diese Info geht doch eh den Bach runter.
>>
>> Für ein LIMIT, dass im Original Query noch vorhanden ist.
>
> Dann machst Du ein Subselect. Neuere MySQL-Versionen können das schon.
Nee, 4.0.27 kennt noch keine Subselects. Leider.
Und Update geht auch nicht, es ist ein Managed-Server.
Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spaltenunterdruecken
> begin Frank Arthur schrieb:
>> Nee, 4.0.27 kennt noch keine Subselects. Leider.
Andreas Kretschmer schrieb:
> test=*# select 'Mitleid' as "Wenn ich mal Zeit habe...";
Hilft auch nicht.
Das Ergebnis hat immer eine Zeile und völlig falsche Daten. Damit kann
ich nix anfangen.