如何通過查詢集獲取最新記錄。喜歡分組

鄭成勳

數據

姓名 數據1 數據2 創建日期
鋼鐵俠 伊布 1630000000
綠巨人 他有 乙肝 1630000000
綠巨人 慧聰 高清 1630500000
隊長 CB 1630000000
隊長 抄送 光盤 1630500000
隊長 這個 比照 1630590000

我想獲取每個名稱的最新數據

姓名 數據1 數據2 創建日期
鋼鐵俠 伊布 1630000000
綠巨人 慧聰 高清 1630500000
隊長 這個 比照 1630590000

像這樣

wish_data = [
    {'name':'iron man', 'data1': 'ia', 'data2': 'ib', 'create_date':1630000000},
    {'name':'hulk', 'data1': 'hc', 'data2': 'hd', 'create_date':1630500000},
    {'name':'captain', 'data1': 'ce', 'data2': 'cf', 'create_date':1630590000},
]

我試過...

    Model.objects.filter(**conditions).values_list('name').annotate(cdate=Max('create_date'))
    
=> [('iron man', 1630000000), ('hulk', 1630500000), ('captain', 1630590000)]>

但我需要其他列...

ORM有可能嗎?還是我必須用 for 和 if 語句編寫邏輯?

例如

wish_data = []
for name, data1, data2, create_date in Model.objects.filter(**conditions).values_list('name', data1, data2, 'create_date').order_by('-create_date'):
if name not in data:
    wish_data.append(
        {
            wish_data['name'] = name
            wish_data['data1'] = data1
            wish_data['data2'] = data2
            wish_data['create_date'] = create_date
        }
    )
認識大西尼

對的,這是可能的。您可以在 django orm 查詢中使用distinctorder_by來獲取您的wish_data. 查詢將是這樣的:

distict_avengers = Model.objects.filter(**conditions).distinct("name").order_by("name", "-create_date").values("name", "data1", "data2", "create_date")

如果您願意,print(distict_avengers)您將看到以下結果:

[
  {"name": "captain", "data1": "ce", "data2": "cf", "create_date": 1630590000},
  {"name": "hulk", "data1": "hc", "data2": "hd", "create_date": 1630500000},
  {"name": "iron man", "data1": "ia", "data2": "ib", "create_date": 1630000000},
]

請注意,SQLite 不支持在字段上使用不同的字段,並且在使用distinctorder_by一起使用 中提到的字段時order_by必須始終以 中提到的字段開頭distinct

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通過分組id獲取最新記錄

如何通過檢查另一個表中的記錄字段來查詢記錄?

JOOQ:如何獲取按字段分組的記錄?

在 postgresql 14 中通過查詢從組中獲取中值

MongoDB查詢以獲取符合條件的記錄

通過表達式只獲取一組中的一條記錄

通過“查詢”對象修改查詢後如何獲取請求對象的修改後的URI?

如何獲取喜歡推文的用戶列表?

通過過濾掉其餘記錄來識別活動記錄的 SQL 查詢

如何在 Laravel 8 中使用 PostgreSQL 中的子查詢通過 group by 子句獲取行值?

如何在 Kusto 中查詢具有空值和非空值的分組不同記錄?

編寫一個 sql 查詢以獲取具有多個值的記錄

查詢以獲取連接中的有序記錄

Express.js:通過嵌套查詢獲取插入的 ID

通過關係 Laravel Eloquent 查詢僅獲取兩個圖像

連接表中所有分組記錄的 SQL 查詢

如何通過 AWS Glue 獲取最新數據

我正在嘗試獲取年齡分佈。通過這個查詢,我收到以下錯誤

PostgreSQL - 查詢結果集兩側的記錄

TSQL - 從記錄集動態生成查詢

MySQL 查詢僅獲取一條記錄:當 end_date 為 null 或 max(end_date)

如何通過 GORM 查詢並僅返回 id 數組?

如何使用查詢獲取關係子組件?

SQL子查詢如何獲取每組最大項的詳細信息

如何使用mongo查詢獲取對像數組的特定對象?

NextJS 獲取組件外的查詢

如何遍歷查詢集並獲取價值 Django

如何只獲取不包含在另一條記錄數組中的記錄

從 DataFrame 獲取可用的最新記錄