Я с трудом преобразования этой простой SQL-запрос ниже в друида:Как выполнить SELECT в результатах, возвращаемых из группы GROUP BY?
SELECT country, city, Count(*)
FROM people_data
WHERE name="Mary"
GROUP BY country, city;
Так что я придумал этот запрос до сих пор:
{
"queryType": "groupBy",
"dataSource" : "people_data",
"granularity": "all",
"metric" : "num_of_pages",
"dimensions": ["country", "city"],
"filter" : {
"type" : "and",
"fields" : [
{
"type": "in",
"dimension": "name",
"values": ["Mary"]
},
{
"type" : "javascript",
"dimension" : "email",
"function" : "function(value) { return (value.length !== 0) }"
}
]
},
"aggregations": [
{ "type": "longSum", "name": "num_of_pages", "fieldName": "count" }
],
"intervals": [ "2016-07-20/2016-07-21" ]
}
Приведенный выше запрос работает, но это не делает похоже, что groupBy в druasource Druid даже оценивается, так как я вижу людей в моей работе с именами, отличными от Mary. Кто-нибудь имеет какой-либо вклад в том, как сделать эту работу?
Я обновил запрос выше, чтобы сделать его более полезным. После того, как вы делаете «группу по» по стране и городу, я захватываю «страну», «город» и «подсчет» всех этих строк в каждой группе, чтобы посмотреть, какая страна и город имеют наибольшее количество людей, Mary'. Но знаете ли вы, что я могу перевести этот запрос в код Друида ('JSON' выше)? – CapturedTree
, но ваш внутренний запрос кажется именно тем, что вам нужно. Group By с фильтрами и агрегатами 'longSum'. Удалите этот внешний запрос и попробуйте только внутренний. – Nikem