Ich habe eine Datentabelle mit etwa 30 Spalten 1 Spalte ist eine Benutzer-ID und der Rest von ihnen sind "Elemente" mit den Werten der Rangfolge von 0 - 29, die angibt die Höhe des Interesses an dem Artikel. 0 = Kein Interesse 1 = Most und 29 = Least.Können Sie SELECT * verwenden und Bedingung für alle Spalten setzen
Gibt es weg alle Spalten mit einer Zählung zur Ausgabe ohne eine Erklärung oder für jedes Element zu schreiben, mit dem „*“ wie
SELECT COUNT(*)
FROM Table t
WHERE * != 0
Der Ausgang wäre
NutzungItem1 | Item2 | Item3 | Item4 | Item5
xxxxx | xxxxx | xxxxx | xxxxx | xxxxx
xxxxx die Gesamtanzahl der Datensätze in der Spalte, in der der Wert nicht 0 ist?
Die Antwort ist nein. – jarlh
Die Lösung besteht darin, Ihre Datenbank neu zu gestalten. Sich wiederholende Spalten zu haben ist im Allgemeinen eine schlechte Idee, gerade weil Sie häufig einige oder alle abfragen wollen. Deaktivieren Sie stattdessen die Daten und speichern Sie für jedes Element eine * Zeile * (Benutzer-ID, Element-Nr., Rang). Sobald Sie ein anständiges Datenmodell eingeführt haben, wird die Abfrage der Daten unkompliziert. –
Welche Art von SQL verwenden Sie? Es kann einige spezifische Schikanen geben, die dir helfen könnten. – Tony