只需进行几次数组操作:
SELECT
groupArray(age) AS ages,
arrayReduce('groupUniqArray', ages) AS uniqAges,
arraySort(x -> x.1, arrayMap(x -> (x, countEqual(ages, x)), uniqAges)) AS resultAges,
groupArray(job) AS jobs,
arrayReduce('groupUniqArray', jobs) AS uniqJobs,
arraySort(x -> x.1, arrayMap(x -> (x, countEqual(jobs, x)), uniqJobs)) AS resultJobs,
groupArray(country) AS countries,
arrayReduce('groupUniqArray', countries) AS uniqCountries,
arraySort(x -> x.1, arrayMap(x -> (x, countEqual(countries, x)), uniqCountries)) AS resultCountries
FROM test.test4
FORMAT Vertical