在SQL中,如果我有一个示例表my_site_visits,它显示了我的网站用户访问过哪些页面:
user_id,url
1,index.html
1,index.html
1,foobar.html
1,index.js
2,a.html
2,b.html
2,index.html
3,foo.js
3,foo.js
4,bar.js
那么我可以找到访问了多个唯一页面的用户,例如
SELECT user_id, COUNT(*) unique_pages_visited
FROM (
SELECT DISTINCT user_id, url
FROM my_site_visits
)
GROUP BY user_id
HAVING unique_pages_visited > 1
结果:
user_id,unique_pages_visited
1,3
2,3
假设我添加到Elastic的JSON具有类似的形式,例如Elastic,有没有一种方法可以做到这一点?
{
"user_id": n,
"url": string,
[Various other Elastic headers]
}
也可以在Kibana中本地执行此操作,还是我需要编写脚本来生成Elastic查询?
最佳答案
您可以尝试kibana的SQl转换查询
例如
开机自检_xpack / sql / translate
{
“query”:“SELECT * FROM IndexName WHERE id = 1”,
“fetch_size”:10
}
将您的查询与索引名,SQL查询和列名放在一起( flex 搜索中名称应匹配)。
如果可以解决您的问题,请标记为答案。谢谢
关于sql - Elasticsearch GROUP BY列的HAVING COUNT> x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56668109/