私は単純なテーブルを持っています:
CREATE TABLE clicks
(
Year UInt16,
Week UInt8,
Day UInt8,
Month UInt8,
ClickDate Date,
ClickTime DateTime,
AdvertId String,
UserId String,
Age UInt8,
Country FixedString(2),
Gender Enum8('male' = 1, 'female' = 2),
Ip String
)
ENGINE = MergeTree(ClickDate, (Year, ClickDate), 8192);
値を重複させずに 1 つの一意の値の行の合計を 1 つの列に追加し、グループ化することは可能ClickDate
ですか? たとえば、クエリがあります:
SELECT
count() AS Summary,
ClickDate,
SUM(roundAge(Age) = 17) AS Age_17,
SUM(roundAge(Age) = 25) AS Age_25,
SUM(roundAge(Age) = 35) AS Age_35,
SUM(roundAge(Age) = 45) AS Age_45,
SUM(Age = 0) AS Age_empty
FROM clicks
GROUP BY ClickDate
この場合、各Age
値を複製する必要があります
SUM(roundAge(Age) = 17) AS Age_17,
SUM(roundAge(Age) = 25) AS Age_25
この重複を取り除くにはどうすればよいですか? 私が期待するもの:
ソースデータ:
┌──ClickDate─┬─RoundedAge─┐
│ 2016-10-09 │ 17 │
└────────────┴────────────┘
┌──ClickDate─┬─RoundedAge─┐
│ 2016-10-09 │ 25 │
│ 2016-10-09 │ 17 │
│ 2016-10-09 │ 45 │
│ 2016-10-09 │ 45 │
│ 2016-10-09 │ 35 │
│ 2016-10-09 │ 45 │
│ 2016-10-09 │ 25 │
│ 2016-10-09 │ 18 │
│ 2016-10-10 │ 25 │
│ 2016-10-10 │ 25 │
└────────────┴────────────┘
┌──ClickDate─┬─RoundedAge─┐
│ 2016-10-09 │ 17 │
└────────────┴────────────┘
必要な出力:
┌─Summary─┬──ClickDate─┬─Age_17─┬─Age_25─┬─Age_35─┬─Age_45─┬─Age_empty─┐
│ 10 │ 2016-10-09 │ 3 │ 2 │ 1 │ 3 │ 0 │
│ 2 │ 2016-10-10 │ 0 │ 2 │ 0 │ 0 │ 0 │
└─────────┴────────────┴────────┴────────┴────────┴────────┴───────────┘