sql - 如何在 SQL 中跨多个表聚合列值的计数?
问题描述
我有多个表(比如说 10 个表),如下所示:
******** ******** *********
* day1 * * day2 * .... * day10 *
******** ******** *********
A B C .. A B C .. A B C ...
1 4 9 .. 7 6 8 .. 9 6 2 ...
7 2 1 .. 0 2 1 .. 0 5 1 ...
3 3 1 .. 0 9 7 .. 1 4 1 ...
7 8 0 .. 1 6 5 .. 2 6 1 ...
******** ******** *********
我想计算每个表中列 C = 1 的次数并创建一个新表,如下所示:
**********
* output *
**********
day num
1 2
2 1
. .
. .
10 3
**********
像这样的东西:
SELECT <n> AS day, COUNT(*) AS num
FROM day<n>
WHERE C = 1 AND <n> IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
最好的方法是什么?(我是 SQL 新手)
解决方案
我是新手,但会尽力而为:
假设你有day1~day3,只有三个表:
SELECT
1 AS day,
COUNT(day1.C) AS num
FROM
day1
WHERE day1.C = 1
UNION ALL
SELECT
2 AS day,
COUNT(day2.C) AS num
FROM
day2
WHERE day2.C = 1
UNION ALL
SELECT
3 AS day,
COUNT(day3.C) AS num
FROM
day3
WHERE day3.C = 1
这会给你:
day num
1 1 2
2 2 1
3 3 3
推荐阅读
- postgresql - Postgres 时间:时区转换错误
- reactjs - 如果子元素为空,则隐藏整个父元素
- drupal-8 - 在 Drupal 安装中我遇到了很多错误,任何人都可以帮我缩短吗?
- postgresql - PostgreSQL - 在一台服务器上调整多个集群
- python-3.x - 发布请求 ServiceDesk+ API
- javascript - 从 Angular 上的数组中搜索过滤器
- mongodb - 如何使用 java 代码转换 mongodb 查询
- java - 如何从一张纸切换到所有其他纸并使用java在excel中获取它们的值
- jquery - 如何修复悬停时未显示禁用按钮的工具提示
- javascript - 获取 WooCommerce 购物车页面中添加到购物车的最后一项的产品 ID