Как установить количество строк и посчитать условные результаты? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь подсчитать количество условий из заданного числа из 100 результатов.

Пример: из последних 100 установленных действий, сколько было «X»?

Я не совсем уверен, с чего начать.

Я довольно новичок в SQL, и я пробовал внутренние объединения, подзапросы и т. Д., Но я просто не могу понять это. Я чувствую, что это довольно просто.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Для этого вам просто нужно sum поднять оператор case, который проверяет значение.Однако, если вы хотите сделать это только для 100 строк, вам нужно будет выполнить этот запрос к derived table (или выражению Common Table, если ваша СУБД поддерживает его), чтобы сделать это ограничение числа строк.

Вот пример, который должен работать в большинстве RDBMS (вам может потребоваться заменить TOP на LIMIT, в зависимости от вашей RDBMS):

select
    sum(
        case 
            when (my_val='X') then 
                1
            else 
                0 
        end
    )
from
    (
        select top 100 
            my_val
        from
            my_table
    ) t
1 голос
/ 17 апреля 2019

@ Ответ RToyo распространяется на любую СУБД.

В Snowflake вы можете немного упростить его, используя IFF:

select
    sum(IFF(my_val='X', 1, 0))
from
    (
        select top 100 
            my_val
        from
            my_table
    ) t
...