首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sql语句组合计数2条语句结果

sql语句组合计数2条语句结果
EN

Stack Overflow用户
提问于 2017-03-26 20:46:10
回答 2查看 15关注 0票数 0

我在组合这两个语句时遇到了麻烦。

我有一个festivalTable,你可以在=> voteTable上投票。在特殊的场合,你也可以有一个specialVoteTable

对于两个单独的表,我有:

代码语言:javascript
运行
复制
select festivalId as festId, COUNT(festivalId) as total from Vote 
where active = 'J'  and FestivalId = 593
group by FestivalId

另一张表也是如此。现在我需要合并这两个结果,除了特殊投票需要乘以8,所以我可以将总数除以9。

因此,这两个独立的查询是

代码语言:javascript
运行
复制
select festivalId as festId, COUNT(festivalId) as total from Vote 
where active = 'J'  and FestivalId = 593
group by FestivalId

select festivalId as festId, (COUNT(festivalId) * 8) as total from       SpecialChartVote 
where active = 'J'  and FestivalId = 593
group by FestivalId

(尚未与festivalTable结合使用。)

有什么意义吗?

EN

回答 2

Stack Overflow用户

发布于 2017-03-26 20:47:52

在子查询中使用union all

代码语言:javascript
运行
复制
select festId, sum(total)/9 as total
from 
  (
  select 
      festivalId as festId
    , COUNT(festivalId) as total 
  from Vote 
  where active = 'J'  and FestivalId = 593
  group by FestivalId
  union all 
  select 
      festivalId as festId
    , (COUNT(festivalId) * 8) as total 
  from SpecialChartVote 
  where active = 'J'  and FestivalId = 593
  group by FestivalId
  ) u
group by festId
票数 2
EN

Stack Overflow用户

发布于 2017-03-26 20:58:33

按照编写的方式,您的查询只查找一个节日。这看起来很奇怪,但您可以通过执行以下操作来组合查询:

代码语言:javascript
运行
复制
select 593 as festId,
       ( (select count(*) from Vote where active = 'J'  and FestivalId = 593) +
         (select count(*) * 8 from SpecialChartVote where active = 'J' and FestivalId = 593)
       ) / 9.0

如果你想获取多个节日的信息,SQLZims答案肯定更好。我只想告诉您,您可以通过执行以下操作来“组合”您的查询:

代码语言:javascript
运行
复制
select (<query1> + <query2>)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43028890

复制
相关文章

相似问题

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