如何翻译成 Rails 查询?

how to translate to rails query?

提问人:Doyoun 提问时间:7/13/2023 最后编辑:dbuggerDoyoun 更新时间:7/13/2023 访问量:49

问:

红宝石 2.3.8

轨道 5.0.0.1

我在转换为 rails 查询时遇到问题。

我有一个查询,它正在查找重复数据:

SELECT count(*) FROM (SELECT date, code, count(*) AS cnt FROM customers WHERE date >= '2021-01-01' GROUP BY date, code) p WHERE p.cnt > 1;

我还想打印以使用记录器检查结果,但它在 rails 批处理中不起作用。

SQL MySQL Ruby-on-Rails

评论

0赞 engineersmnky 7/14/2023
目前尚不清楚您正在寻找什么结果,因为这只会返回一个包含 Integer 的未命名列。

答:

2赞 Vasily Kolesnikov 7/13/2023 #1

如果我正确理解了这个问题,您可能需要:having

Customer.where("date >= '2021-01-01'").having('count(*) > 1').group(:date, :code)

评论

1赞 engineersmnky 7/14/2023
这将返回一个 of 而不是 all of the all of ,尽管你可以在之后用它来解决这个问题。Hash{[date,code] => number}size
0赞 Doyoun 7/14/2023
谢谢,科列斯尼科夫@Vasily。帮了我很多。我得到了Customer.where("date >= '2021-01-01'").select("date, code, count(*) as cnt").group("date, code").having("cnt > 1").select("count(*)")