SQL делится на два, рассчитывают ()

Можно сделать это с составной литерал . Согласно той странице, это работает в C99 (который также рассчитывает как ANSI C).

MY_TYPE a;

a = (MY_TYPE) { .flag = true, .value = 123, .stuff = 0.456 };
...
a = (MY_TYPE) { .value = 234, .stuff = 1.234, .flag = false };

обозначения в инициализаторах являются дополнительными; Вы могли также записать:

a = (MY_TYPE) { true,  123, 0.456 };
...
a = (MY_TYPE) { false, 234, 1.234 };

10
задан Joel Coehoorn 14 July 2009 в 19:57
поделиться

3 ответа

Представьте свой общий счет как число помимо целого (ДЕСЯТИЧНОЕ?) - математические вычисления округляются.

10
ответ дан 3 December 2019 в 21:22
поделиться

Приводится как нечто с десятичной точностью, а не как целое число. Поплавок или реальный.

select cast(distinctCount as real)/cast(totalCount as real) * 100.00
   , distinctCount
   , totalCount
from (
 select count(distinct id) as distinctCount
  , count(id) as totalCount
  from Table) as aggregatedTable
5
ответ дан 3 December 2019 в 21:22
поделиться

Не должно быть:

;WITH totalCount AS(
    SELECT 
        CAST(COUNT(id) as Integer)as totalCount
    FROM TABLE_NAME
)
SELECT 
    ((CAST(COUNT(DISTINCT id) as Integer)*100/(SELECT count(*) FROM totalCount))) as 'Percent'
FROM TABLE_NAME

Обратите внимание на ВЫБОР СЧЕТЧИКА (*). Кроме того, вы должны умножить, прежде чем делить, иначе вы всегда получите ноль

2
ответ дан 3 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: