SQL: количество Выбора Объединения (*) от нескольких таблиц

Я чувствую этот вопрос (который я получаю вполне немного), лучше всего отвечен с аналогией.

Многие из нас качаются. Почему? Это, потому что мы готовимся в течение того дня, когда мы становимся профессиональным тяжелоатлетом? Мы будем когда-либо встречаться с подъемом весов как требование задания?

, Конечно, нет. Мы качаемся, потому что это осуществляет наши мышцы. Это сохраняет нас соответствием и в форме. Здоровый человек выполнит лучше в других областях: пеший туризм, конструкция, выполнение, сон, и т.д.

Изучение математики похожи на тяжелую атлетику для мозга. Это осуществляет ум и сохраняет его в форме. Вы никогда не можете использовать исчисление в своей карьере, но Ваш мозг будет в лучшей форме из-за этого.

43
задан Kiquenet 1 August 2017 в 07:34
поделиться

7 ответов

SELECT 
(select count(*) from foo1 where ID = '00123244552000258')
+
(select count(*) from foo2 where ID = '00123244552000258')
+
(select count(*) from foo3 where ID = '00123244552000258')

Это простой способ.

88
ответ дан 26 November 2019 в 22:30
поделиться
select 
  (select count(*) from foo) as foo
, (select count(*) from bar) as bar
, ...
16
ответ дан 26 November 2019 в 22:30
поделиться

Я удивлен, что никто не предложил этот вариант:

SELECT SUM(c)
FROM (
  SELECT COUNT(*) AS c FROM foo1 WHERE ID = '00123244552000258'
  UNION ALL
  SELECT COUNT(*) FROM foo2 WHERE ID = '00123244552000258'
  UNION ALL
  SELECT COUNT(*) FROM foo3 WHERE ID = '00123244552000258'
);
15
ответ дан 26 November 2019 в 22:30
поделиться

Обычно вы выполняете подсчет как подзапросы в рамках стандартного выбора.

Примером может быть следующий, это возвращает 1 строку, два столбца

SELECT
 (SELECT COUNT(*) FROM MyTable WHERE MyCol = 'MyValue') AS MyTableCount,
 (SELECT COUNT(*) FROM YourTable WHERE MyCol = 'MyValue') AS YourTableCount,
8
ответ дан 26 November 2019 в 22:30
поделиться

Вы можете комбинировать свои подсчеты, как и раньше, но затем вы можете суммировать их все несколькими способами, один из которых показан ниже:

SELECT SUM(A) 
FROM
(
    SELECT 1 AS A
    UNION ALL 
    SELECT 1 AS A
    UNION ALL
    SELECT 1 AS A
    UNION ALL
    SELECT 1 AS A
) AS B
2
ответ дан 26 November 2019 в 22:30
поделиться

вы можете назвать все поля и добавить внешний выбор для этих полей:

SELECT A, B, C FROM ( your initial query here ) TableAlias

Это должно помочь.

0
ответ дан 26 November 2019 в 22:30
поделиться
select sum(counts) from (
select count(1) as counts from foo 
union all
select count(1) as counts from bar)
0
ответ дан 26 November 2019 в 22:30
поделиться