首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从范围内的数据的表中计数Id?

如何从范围内的数据的表中计数Id?
EN

Database Administration用户
提问于 2017-10-23 09:37:10
回答 2查看 412关注 0票数 -1

我有一个表cricket_overs,它有两个列,如下所示

代码语言:javascript
运行
复制
mid overs
1   3
2   5
3   6
4   8
5   10

我需要在0-3到4-6和>6之间的中间位置数,输出应该是

代码语言:javascript
运行
复制
for 0-3 overs ---count of mid 1
for 4-6 overs ---count of mid 2
for  >6 overs ---count of mid 2
--output
count
1
2
2

如何编写查询?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2017-10-23 10:32:18

为了回答这个问题,我做了以下工作(表+数据):

代码语言:javascript
运行
复制
CREATE TABLE cricket_score
(
  mid INTEGER NOT NULL,
  overs INTEGER NOT NULL
);


INSERT INTO cricket_score VALUES 
  (1,  3),
  (2,  5),
  (3,  6),
  (4,  8),
  (5, 10);

运行查询:

代码语言:javascript
运行
复制
SELECT my_count, COUNT(my_count)  AS the_score
FROM
(
  SELECT
  mid, overs, -- <<-- this line is unnecessary - helpful for understanding! 
    CASE      -- <<-- Just run the subquery on its own.
      WHEN overs BETWEEN 1 AND 3 THEN 'mid_1'
      WHEN overs BETWEEN 4 AND 6 THEN 'mid_2'
      WHEN overs > 6             THEN 'mid_3'
    END AS my_count
  FROM cricket_score
) AS STUFF
GROUP BY my_count
ORDER BY my_count;

并得到了以下结果:

代码语言:javascript
运行
复制
my_count    the_score
mid_1               1
mid_2               2
mid_3               2

DB-小提琴这里!DB-小提琴是为PostgreSQL而设的--另一个站点,SQLFiddle.com又出了问题(再次!)而数据库-小提琴没有MS服务器,但这是相当标准的东西-应该没有问题的任何服务器!

票数 1
EN

Database Administration用户

发布于 2017-10-23 10:12:34

代码语言:javascript
运行
复制
select count(*) from table where overs >=0 and overs <= 3

从这里开始,您应该能够扩展到一个完整的解决方案。你的问题没有显示出任何努力。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/189077

复制
相关文章

相似问题

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