Newbie: Zusammenfassen mehrerer Einzelabfragen

Armus

Neuer Benutzer
Beiträge
2
Hallo,

ich habe gerade angefangen mich mit SQL zu beschäftigen und stehe vor folgendem Problem.

Version|Anzahl
--------------
1.0 | 2
2.0 | 1
2.1 | 2
3.0 | 4
3.1 | 3


Eine Abfrage soll ergeben:

Hauptversion|Summe
------------------
1 | 2
2 | 3
3 | 7


Ich habe leider keinen Ansatz wie ich die Abfrage formulieren soll.

Für eine einzelne Version könnte ich nehmen.
Code:
SELECT SUM(Anzahl) as Version_1
FROM table
WHERE SUBSTRING(version, 1, 1) = '1'
GROUP by SUBSTRING(version, 1, 1)

Kann mir jemand weiterhelfen?

Armus
 
Werbung:
Was hast denn für Datentypen?

Code:
test=*# select * from armus ;
 version | anzahl
---------+--------
 1.0  |  2
 2.0  |  1
 2.1  |  2
 3.0  |  4
 3.1  |  3
(5 rows)

test=*# select regexp_replace(version, '\..$',''), sum(anzahl) from armus group by 1 order by 1;
 regexp_replace | sum
----------------+-----
 1  |  2
 2  |  3
 3  |  7
(3 rows)

test=*# \d armus
  Table "public.armus"
 Column  |  Type  | Modifiers
---------+---------+-----------
 version | text  |
 anzahl  | integer |

test=*#
 
Tja, das ist Faulheit, man kann sich so auf die n-te Spalte im Resultset beziehen. In produktivem Code sollte man das nicht verwenden.
 
Werbung:
Grundsätzlich geht es auch mit substring()
Code:
SELECT SUBSTRING(version, 1, 1) AS Version,SUM(Anzahl) AS Summe
FROM table
GROUP by SUBSTRING(version, 1, 1)
aber dann hast du ein Problem sobald deine Versionsnummer mehrstellig wird.
 
Zurück
Oben