Как мне объединить количество значений столбцов в нескольких таблицах в SQL?

#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)

Комментарии:

1. Прежде всего, какую СУБД вы используете?

Ответ №1:

 SELECT 1 AS DAY FROM DAY1 WHERE C=1 UNION
SELECT 2 AS DAY FROM DAY2 WHERE C=1 UNION
...
SELECT 9 AS DAY FROM DAY9 WHERE C=1 UNION
SELECT 10 AS DAY FROM DAY10 WHERE C=1 
  

А затем выполните COUNT(*) ГРУППИРУЙТЕ ПО ДНЯМ.

Ответ №2:

Я новичок, но буду стараться изо всех сил:

Предполагая, что у вас есть 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