gpt4 book ai didi

mysql - Rails 加入协会并计数

转载 作者:行者123 更新时间:2023-11-29 03:26:45 25 4
gpt4 key购买 nike

所以我有以下......

  • 大学 - 有很多供应商
  • Provider - 属于大学,通过职位有很多地址
  • 位置 - 属于供应商和地址
  • 地址 - 有很多供应商通过职位

我想要的是具有相关供应商数量的大学列表但提供商还需要一个地址。

我尝试过的:

@universities = University.joins(:providers).select('universities.id, universities.name, universities.slug, providers.id, count(providers.id) as count').group('universities.id').order('count').reverse

提供如下列表:

- id: 14
name: Salus University
slug: salus-university
count: 72
- id: 22
name: University of Florida
slug: university-of-florida
count: 45

问题是计数包括没有地址的提供者。所以我尝试了以下方法:

@universities = University.joins(providers: :addresses).select('universities.id, universities.name, universities.slug, providers.id, count(providers.id) as count').group('universities.id').order('count').reverse

但是,这给了我地址总数而不是地址提供者的计数:

- id: 14
name: Salus University
slug: salus-university
count: 90
- id: 22
name: University of Florida
slug: university-of-florida
count: 60

最佳答案

好吧,我终于弄明白了。我刚刚加入了职位并将 distinct 添加到计数中:

@universities = University.joins(providers: :positions).select('universities.id, universities.name, universities.slug, providers.id, count(distinct providers.id) as count').group('universities.id').order('count desc')

关于mysql - Rails 加入协会并计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34929626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com