ClickHouse

Форк
0
/
AggregateFunctionCramersV.cpp 
44 строки · 1.0 Кб
1
#include <AggregateFunctions/AggregateFunctionFactory.h>
2
#include <AggregateFunctions/CrossTab.h>
3
#include <AggregateFunctions/FactoryHelpers.h>
4
#include <memory>
5
#include <cmath>
6

7

8
namespace DB
9
{
10

11
namespace
12
{
13

14
struct CramersVData : CrossTabData
15
{
16
    static const char * getName()
17
    {
18
        return "cramersV";
19
    }
20

21
    Float64 getResult() const
22
    {
23
        if (count < 2)
24
            return std::numeric_limits<Float64>::quiet_NaN();
25

26
        UInt64 q = std::min(count_a.size(), count_b.size());
27
        return sqrt(getPhiSquared() / (q - 1));
28
    }
29
};
30

31
}
32

33
void registerAggregateFunctionCramersV(AggregateFunctionFactory & factory)
34
{
35
    factory.registerFunction(CramersVData::getName(),
36
        [](const std::string & name, const DataTypes & argument_types, const Array & parameters, const Settings *)
37
        {
38
            assertBinary(name, argument_types);
39
            assertNoParameters(name, parameters);
40
            return std::make_shared<AggregateFunctionCrossTab<CramersVData>>(argument_types);
41
        });
42
}
43

44
}
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.