我正在使用peewee2.1與python3.3和sqlite3.7數據庫。可以peewee嵌套SELECT查詢以便外部查詢選擇內部查詢的聚合嗎?
我想執行某些SELECT查詢,其中:
- 我首先選擇一些集合體(計數,總和)中,由一些id列分組;然後
- 然後我從(1)的結果中進行選擇,在其總量上進行聚合。具體來說,我想要計算(1)中具有每個聚合值的行數。
我的數據庫有一個'Event'表,每個事件有一條記錄,'Ticket'表有每個事件1..N個票。每張票據記錄都包含事件的ID作爲外鍵。每張門票還包含一個「座位」列,用於指定購買的座位數量。 (A「票」是作爲在活動1個或多個座位購買交易真正最好的思想。)
下面是給我想要的結果這種工作的SQLite查詢的兩個例子:
SELECT ev_tix, count(1) AS ev_tix_n FROM
(SELECT count(1) AS ev_tix FROM ticket GROUP BY event_id)
GROUP BY ev_tix
SELECT seat_tot, count(1) AS seat_tot_n FROM
(SELECT sum(seats) AS seat_tot FROM ticket GROUP BY event_id)
GROUP BY seat_tot
但使用Peewee時,我不知道如何在指定外部查詢時選擇內部查詢的聚合(計數或總和)。我當然可以爲該聚合指定一個別名,但似乎我無法在外部查詢中使用該別名。
我知道Peewee具有執行「原始」SQL查詢的機制,並且我已成功使用該解決方法。但我想了解是否/如何直接使用Peewee來完成這些查詢。
感謝在這裏張貼的解決方案,我敢肯定,這將再來!順便問一句,真正讓我想到一些方法來改進一些API。 – coleifer