首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对重复的对进行分组并编写查询?

如何对重复的对进行分组并编写查询?
EN

Stack Overflow用户
提问于 2018-10-29 02:33:09
回答 1查看 53关注 0票数 0

假设我有下表

代码语言:javascript
复制
Fruit  |   Price   |   Fruit   |   Price   |   State 
-----------------------------------------------------
apple  |     4     |   banana  |     3     |     NY
apple  |     6     |   banana  |     5     |     CA
apple  |     1     |   banana  |     2     |     PA
orange |     4     |   pear    |     5     |     FL
orange |     3     |   pear    |     4     |     OH

我想提出以下问题:

fruit1在所有州都比fruit2贵吗?

所以对所有对都要问这个问题。

  1. 苹果()、苹果()、苹果()、香蕉()在所有州的价格都比香蕉高吗?
  2. 在所有州都比贵吗?
  3. 继续要求任何其他现有的对

因此,我假设我需要编写的查询需要以某种方式首先出现在多行中的组对。我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2018-10-29 02:39:21

所以你会做:

代码语言:javascript
复制
select fruit1, fruit2
from t
group by fruit1, fruit2
having sum(price1 > price2) = count(*);

也就是说,进行一个聚合。计算fruit1价格大于fruit2价格的次数。如果这总是正确的,那么计数等于总计数。

如果数据都在一个表中:

代码语言:javascript
复制
select t1.fruit, t2.fruit
from t t1 join
     t t2
     on t1.state = t2.state and t1.fruit <> t2.fruit
group by t1.fruit, t2.fruit
having sum(t1.price > t2.price) = count(*);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53037990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档