2016-04-11 5 views
0
imei  date 
10013700 6:00:00 AM 
10015700 6:00:00 AM 
10014200 6:00:01 AM 
10014500 6:00:04 AM 
10016300 6:00:04 AM 
16014600 6:00:04 AM 
10013700 6:00:05 AM 
10015700 6:00:05 AM 
10013000 6:00:06 AM 
10014700 6:00:06 AM 
10016300 6:00:06 AM 
10016300 6:00:06 AM 

Dies ist die Tabelle .. jetzt von IMEI und Zeit besteht ich brauche Tabelle nach Datum und Gruppe von IMEI zu machen ...Wie gruppiere ich die gleiche Benutzer-ID, aber mit der Reihenfolge nach der Zeit?

imei  date 
10013700 6:00:00 AM 
10013700 6:00:05 AM 
10015700 6:00:00 AM 
10015700 6:00:05 AM 
10014200 6:00:01 AM 
10014500 6:00:04 AM 
10016300 6:00:04 AM 
10016300 6:00:06 AM 
10016300 6:00:07 AM 
16014600 6:00:04 AM 
10013000 6:00:06 AM 
10014700 6:00:06 AM 

i von der ersten Zeit und gruppiert nach imei begonnen haben, zusammen mit Zeit und beginnen Sie mit anderen IMEI-Nummer beim nächsten Mal der vorherigen imei in meinem Datensatz zusammen mit IMEI, heute gibt es andere Attribute zu starten ..

con = sqlite3.connect("E://code/differenttaxi.sqlite") 
df=pd.read_sql_query('SELECT * FROM taxitable WHERE date>="2013-12-16  06:00:00" AND date<"2013-12-17 00:00:00" JOIN (SELECT id,imei, i,lat,lon,speed,direction,error,engine,meter,min(date) first from taxitable group by 10013700)on imei=i ORDER BY first',con) 


df.to_csv('E:\\code\\Query_Result.csv',index=False) 
con.close() 
print("completed!\n") 
display(pd.read_csv('E:\\code\\Query_Result.csv')) 

Fehler generiert:

DatabaseError: Execution failed on sql near "JOIN": syntax error

+0

@HimalAcharya Sie nicht Code in Kommentaren schreiben, die Frage bearbeiten und es schön zu Ende hinzufügen . – Bloodied

+0

Sieht so aus, als müssten Sie nur 'ORDER BY user, date'. Es wird keine GROUP BY benötigt. –

Antwort

1

Sie müssen das erste Datum für jeden Benutzer und um damit zu finden:

select t.user, t.date 
from mytable t 
join (select user u, min(date) first from mytable group by 1) x 
    on user = u 
order by first, user, date 
+0

es funktioniert nicht .... –

+0

Gibt es einen Fehler? Wenn ja, welcher Fehler? Wenn nicht, was bedeutet "nicht funktionieren" genau? – Bohemian

+0

bearbeitet die qn, um genauer zu machen –

0
SELECT tbl.user, tbl.date FROM table_name tbl 
LEFT JOIN (
    SELECT user, date FROM table_name GROUP BY user 
) ord on tbl.user = ord.user 
order by ord.date, tbl.date 
Verwandte Themen