selsames Verhalten mit SELECT und SUM in einer sqllite

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
thonix
User
Beiträge: 47
Registriert: Samstag 12. August 2006, 00:06

Hallo zusammen,

ich habe eine Tabelle welche zwei spalten + ID enthält:
ID, Page, Count
1, 'a', 2900000000.0
2, 'b', 1700000000.0
3, 'c', 640300000.0
wenn ich nun ein

Code: Alles auswählen

select page,count from table group by page order by SUM(count) desc limit 50'
bekomme ich die Daten korrekt angezeigt.

Mache ich jedoch ein SUM auf den count Wert:

Code: Alles auswählen

select page,SUM(count) from table group by page order by SUM(count) desc limit 50'
werden folgende Werte ausgegeben:
('a', -1394967296)
('b, 1700000000)
('c', 640300000.0)
Warum wird nicht wie in der DB 2900000000.0 sondern -1394967296 ausgegeben?


Ein SUM wird benötigt da manche pages doppelt vorkommen und addiert werden müssen ...

auf der bash in der sqlite shell funktioniert auch der select mit SUM ...

Der aufruf in Python sieht wie folgt aus:

Code: Alles auswählen

import sqlite
connection  = sqlite.connect('Database.db')
cursor = connection.cursor()
cursor.execute('SELECT ..... siehe oben"')
for b in cursor.fetchall():
   print b
Hat hier jemand einen Rat ?

Vielen Dank und Gruß

Thonix
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

thonix hat geschrieben:ich habe eine Tabelle welche zwei spalten + ID enthält:
ID, Page, Count
1, 'a', 2900000000.0
2, 'b', 1700000000.0
3, 'c', 640300000.0
Nur so als Idee: COUNT ist ein SQL-Schlüsselwort und sollte daher vorzugsweise nicht als Spaltenname verwendet werden. Vielleicht kommt die sqlite-Engine da durcheinander.
Antworten