ich die folgende Abfrage leite aus einer Tabelle Daten zu schwenken:MySQL Datenbankfehler: Zu viele Spalten
SELECT
time_stamp,
SUM(CASE WHEN sensor_id=000001 THEN temp ELSE 0 END) AS 'temp_000001',
SUM(CASE WHEN sensor_id=000002 THEN temp ELSE 0 END) AS 'temp_000002',
...
SUM(CASE WHEN sensor_id=003372 THEN temp ELSE 0 END) AS 'temp_003372'
FROM sensor_data
GROUP BY time_stamp
Die Abfrage eine Ergebnismenge mit 3372 Spalten zurückgeben soll und 8928 Zeilen (Anzahl verschiedener time_stamps). Ich bekomme einen "Too many columns" -Fehler, der merkwürdig ist, weil die Abfrage vorher funktioniert hat. sensor_data enthält Messungen von 3372 Sensoren zu 8928 Zeitpunkten. Wenn ich die gleiche Abfrage für eine Tabelle ausführen, die Messungen von 3372 Sensoren zu 288 Zeitpunkten enthält, funktioniert es. Die Anzahl der Spalten kann also nicht wirklich das Problem sein.
funktioniert immer noch nicht für mich und selbst wenn es tat, fühlt sich das an, als ob ich das falsche Werkzeug für den Job verwende. aber wie sonst würde man große Datensätze so drehen? – salvador
Können Sie die Details veröffentlichen? Was ist die Art von Temp? –
Temperatur ist VARCHAR (50). Angesichts der Tatsache, dass ich nicht das tatsächliche harte Limit von 4096 Spalten treffe, gibt es eine Möglichkeit, die Zeilenlänge von 64k zu erhöhen? Ich bin ein wenig verwirrt darüber, warum ich immer wieder auf diese scheinbar willkürlichen Grenzen stoße. Zu keinem Zeitpunkt sehe ich, dass die Speicherauslastung meiner Maschine ihre Grenzen erreicht. Warum also sollte MySQL diese nicht verwenden? Ich bekomme, dass es eine Spalte Grenze für Tabellen gibt, um eine angemessene Datenbank-Design zu gewährleisten, aber für Abfragen? – salvador