一千萬個為什麽

搜索

LINQ查詢查找一列的最小值

我有一個包含以下列的表

inspection_dt,
contact_dt,
description,
product_mod,
product_desc,
contact_nm,
history_id,
inspect_id,
history_type,
incident_product_id,
contact_history_id

我將使用LINQ來查詢此表中的通用行列表。扭曲是我想要history_id的最小(MIN)值 - 並模仿這個SQL查詢。

SELECT DISTINCT
    inspection_dt,
    contact_dt,
    description,
    product_mod,
    product_desc,
    contact_nm,
    MIN(history_id) AS history_id,
    inspect_id,
    history_type,
    incident_product_id,
    contact_history_id
FROM
    myTable
GROUP BY
    inspection_dt,
    contact_dt,
    description,
    product_mod,
    product_desc,
    contact_nm,
    inspect_id,
    history_type,
    incident_product_id,
    contact_history_id

我試過像這樣的片段

var searchData = items
    .GroupBy(i => new { i.history_id })
    .Select(g => new { history = g.Min() })
    .Distinct();

但仍然搞砸了

我使用MIN,MAX等函數卡住了,並在LINQ中進行分組,並希望得到任何幫助。

謝謝,

最佳答案

如果要完全模仿查詢,則需要按SQL分組的相同列或字段進行分組。嘗試類似的東西

.GroupBy(item => 
      new 
      {
          item.inspection_dt,
          item.contact_dt,
          item.description,
          item.product_mod,
          item.product_desc,
          item.contact_nm,
          item.inspect_id,
          item.history_type,
          item.incident_product_id
      }
     )
.Select(g => g.Min(item => item.history_id))

轉載註明原文: LINQ查詢查找一列的最小值