【问题标题】:Return unique years from find [duplicate]从查找中返回唯一年份[重复]
【发布时间】:2012-10-03 19:05:11
【问题描述】:

可能重复:
Rails: select unique values from a column

假设我在过去两年(2011 年和 2012 年)创建了 5000 条记录。如何遍历所有这些记录并返回仅包含唯一年份 [2011、2012] 的数组?

我正在创建一个报告,其中行标记为每年记录退出,列标记为月。然后 td 由每年每个月的总和填充。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    请参阅Rails: select unique values from a column 了解更多轨道方法..

    Model.uniq.pluck(:year)
    

    编辑:

    根据您的具体要求,您可以做

     Model.pluck(:created_at).map{|x| x.year}.uniq
    

    【讨论】:

    • 不错!我不知道 pluck()。
    • 这似乎是在寻找一个名为“年”的列。没有?
    • Model.uniq.pluck(:created_at) 越来越接近了。但是,它返回 uniq 'created_at' 日期。我需要独特的岁月。有什么想法吗?
    • 哦,你没有年份属性吗?
    • 我已经编辑了答案以帮助您更多
    【解决方案2】:

    Model.select("created_at").map{ |i| i.created_at.year }.uniq 正在工作。我仍在寻找更清洁的方法。

    【讨论】:

    • 采用受 RailsN00b 启发的解决方案。 Model.uniq.pluck("EXTRACT(YEAR FROMwhat_date)")
    猜你喜欢
    • 1970-01-01
    • 2019-04-19
    • 2018-08-16
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多