Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

sqldatasource dal, wwwxxxenden, convert raid5 to raid 10 mdadm, apache force chunked, nrao wwwxxx, xxxxxdup, procmail change subject header, wwwXxx not20, Wwwxxx.doks sas, linux raid resync after reboot

Links

XODOX
Impressum

#1: Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken

Posted on 2008-04-16 15:28:18 by Frank Arthur

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`)
);

Report this message

#2: Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken

Posted on 2008-04-16 15:41:43 by Andreas Kretschmer

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

Report this message

#3: Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spaltenunterdruecken

Posted on 2008-04-16 15:54:11 by Frank Arthur

> 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

Report this message

#4: Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken

Posted on 2008-04-16 16:14:53 by Andreas Kretschmer

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

Report this message

#5: Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spaltenunterdruecken

Posted on 2008-04-17 08:04:59 by Frank Arthur

>>>> 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.

Report this message

#6: Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spalten unterdruecken

Posted on 2008-04-17 08:12:43 by Andreas Kretschmer

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

Report this message

#7: Re: Probleme mit GROUP, bzw. bei INSERT SELECT Spaltenunterdruecken

Posted on 2008-04-17 09:42:48 by Frank Arthur

> 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.

Report this message