簡體   English   中英

如何建立一個唯一值列表並顯示其ID數組?

[英]How to build a list of unique values and display an array of their ids?

這段代碼是我要實現的概念的簡化版本。 實際上,我正在處理一個稍微復雜的查詢的結果-但我認為這個簡單的示例就足夠了。

我正在嘗試輸出具有ID數組的唯一值的有序列表。 我不確定是否需要使用一個或兩個select語句,還是應該使用一個select語句和一些ruby代碼。

數據 (人)

id: first: last:
1   Julie  Brown
2   Julie  Brown
3   Mike   Smith
4   Julie  Brown
5   Andrea Smith
6   Mike   Smith
7   Jim    Brown

所需的輸出

Jim Brown (7)
Julie Brown (1, 2, 4)
Andrea Smith (5)
Mike Smith (3, 6)
@people = Person
  .select(:first, :last, "array_agg(id) AS ids")
  .group(:first, :last)

您可以使用array_agg函數在單個查詢中獲取所有ID。

@people.each do |person|
  full_name = [person.first, person.last].join(" ")
  puts "#{ full_name } (#{ person.ids.join(", ") })"
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM