Rails版本:
@most_valueable_clients = current_user.clients.find_by_sql("SELECT vorname, nachname, preis FROM clients INNER JOIN treatments on treatments.client_id=clients.id")
SQL版本:
SELECT vorname, nachname, preis FROM clients INNER JOIN treatments on treatments.client_id=clients.id WHERE user_id=1;
在表中生成:
vorname | nachname | preis
------------+--------------+-------
hallo test | in ? | 500
hallo test | in ? | 87
ljkjölk | lkjöljkölkjö | 50
kevin | marcel | 50
Hans | bla | 50
Hans | bla | 100
我可以使用distinct来过滤唯一值。 如何创建每个preis(均值)为每个用户汇总的子查询? 我需要总价的独特价值。
预期结果:
具有总计preis(金额)的唯一客户。
有什么建议吗?
答案 0 :(得分:2)
很高兴这对你有用:
您要做的是在SQL中使用group by。对于Rails,试试这个:
current_user.clients.includes(:treatments).group(:vorname, :nachname).sum(:preis)
答案 1 :(得分:0)
试试这个:
current_user.clients.find_by_sql("SELECT vorname, nachname, sum(preis)
FROM clients INNER JOIN treatments on treatments.client_id=clients.id
GROUP BY vorname, nachname")