Подсчет количества появлений из двух столбцов - PullRequest
0 голосов
/ 01 мая 2020

У меня есть два столбца из таблицы - соответствует . Я хочу найти количество появлений для каждого судьи (независимо от того, является ли он судьей1 или судьей2). Обратите внимание, что нет повторяющихся данных, так как одна и та же пара судей может появляться для нескольких матчей.

|----------|----------|
| umpire1  | umpire2  |
|----------|----------|
| Rauf     | Koertzen |
| Benson   | Harper   | 
| Koertzen | Harper   |
| Harper   | Rauf     |
| Rauf     | Benson   |
| Benson   | Koertzen |
| Rauf     | Koertzen |
| Rauf     | Harper   |
| Bowden   | Koertzen |
|----------|----------|

Я хочу, чтобы мой вывод был в следующем формате:

|----------|-----------|
|  umpire  |appearances|
|----------|-----------|
| Benson   |     3     |
| Bowden   |     1     | 
| Harper   |     4     |
| Koertzen |     5     |
| Rauf     |     5     |
|----------|-----------|

I'm в состоянии найти появления для каждого судьи отдельно, но только из одного столбца за один раз. Например,

SELECT umpire1, COUNT(umpire1) FROM matches
GROUP BY umpire1

, приведенное выше, дает мне количество появлений только для столбца umpire1. Точно так же я могу получить количество появлений для столбца umpire2. Но мне нужен агрегированный столбец с судьями и подсчетом их появления в обоих столбцах. Я пытался использовать команды «UNION» и «UNION ALL», но они, кажется, просто добавляют результаты из обоих столбцов.

1 Ответ

0 голосов
/ 01 мая 2020

Попробуйте следующее, вот демоверсия .

select
    umpire,
    sum(app) as appearances 
from
(
  select
    umpire1 as umpire,
    count(umpire1) as app
from umpires
group by
    umpire1

union all

select
    umpire2 as umpire,
    count(umpire2) as app
from umpires
group by
    umpire2
) val
group by
    umpire

Вывод:

*----------------------*
|umpire |  appearances |
*----------------------*
|Benson     3          |
|Bowden     1          |
|Harper     4          |
|Koertzen   5          |
|Rauf       5          |
*----------------------*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...