s = select([tsr.c.kod]).where(tsr.c.rr=='10').group_by(tsr.c.kod)
,這並不:
s = select([tsr.c.kod, tsr.c.rr, any fields]).where(tsr.c.rr=='10').group_by(tsr.c.kod)
爲什麼?
thx。
s = select([tsr.c.kod]).where(tsr.c.rr=='10').group_by(tsr.c.kod)
,這並不:
s = select([tsr.c.kod, tsr.c.rr, any fields]).where(tsr.c.rr=='10').group_by(tsr.c.kod)
爲什麼?
thx。
它不起作用,因爲查詢無效。
每列需要在group_by
或需要一個聚合(即max()
,min()
,無論)。
你試圖做的是以某種方式在mysql中有效,但在標準的sql,postgresql和常識中無效。當按'kod'分組行時,組中的每一行都具有相同的「kod」值,但「rr」的值不同。隨着聚合函數,你可以得到在此列中各組的值的一些方面,例如
選擇KOD,MAX(RR)從表組由KOD
會給你的「KOD的和最大列表'每個組中的'rr's(由kod)。
令人悲傷的是,在select子句中,只能從group by子句中放置列和/或從其他列中放置集合函數。你可以把你喜歡的東西放在哪裏 - 這是用於過濾。您還可以在包含集合函數表達式的組之後添加額外的'having'子句,該集合函數表達式也可以用作組後過濾。
我正在使用mssql + pyodbc – 2010-11-08 01:22:53
你是否想過如何解決這個問題? – vonPetrushev 2010-11-19 00:38:46