![]() |
1
10
如果您使用的是Postgresql<8.4(考虑到计划,我想你是这样的)-通常使用
在8.4中没有区别,因为DISTINCT被“教导”能够使用组运算符。 |
![]() |
2
1
SQL必须执行相同的步骤来收集所需的信息,以便为GROUP BY或“等效”不同查询做准备:相同的筛选器、相同的排序等。区别在于最后一步,这里Postgre称之为“组”或“唯一”。 当GROUPBY查询在其SELECT中不包含任何聚合时,“GROUP”和“Unique”本质上是相同的(即使它们在服务器代码中归结为不同的方法)。在存在一些聚合的情况下,如say COUNT(*)、MAX(一些_字段)等。“Group”步骤需要更多的资源,因为它需要额外的存储来存储计数、最小值等,并且需要增加或与之比较等。 我会采用分组的方法,就像在SELECT中添加聚合一样,如果在某个时候需要这样的信息,而不会对查询做太多更改。即使未显示实际计数,应用程序也可以按此计数的降序显示域。 |
![]() |
JBlake · 唯一验证基于datetime属性的存在,而不是值? 6 年前 |
![]() |
Serge · Yii-查找具有零相关记录的记录 6 年前 |
![]() |
waynard · Rails 5左外连接与WHERE查询相结合 6 年前 |
![]() |
OKMantis · Ruby on Rails中的交叉引用表 6 年前 |
![]() |
Grey · 访问不同子控制器中的不同关系 6 年前 |