1. 程式人生 > >sqlalchemy:列user_vid去重,取id最大值。

sqlalchemy:列user_vid去重,取id最大值。

表Charts

如表Charts,value值隨id增加會變化,我們要取出每個使用者最新的value值。

id value user_vid(使用者id,唯一) user_name
1 866 1 LITING2
2 778 2 LITING
3 68 2 LITING
4 58 2 LITING
5 38 1 LIING2
6 85 3 LIYANYAN
7 81 3 LIYANYAN
8 80 3 LIYANYAN
    DBsession = Session()
    user_vids = DBsession.query(distinct(Charts.user_vid)).all()
    #先把使用者id去重
time_l=[] for user_vid in user_vids: time1=DBsession.query(Charts).filter(Charts.user_vid==user_vid).order_by(Charts.id.desc()).first() #把表Charts根據ID列(ID越大,value值最新)倒序,根據user_vid取出值最大ID對應的value。 time_l.append(time1)