sql - Elasticsearch GROUP BY列的HAVING COUNT> x

标签 sql elasticsearch group-by kibana having

在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/

相关文章:

mysql - 单表和多表语法的区别?

mysql - 禁用特定表的 BinLogging,在哪里执行参数更改

sql-server - Elasticsearch返回旧的SQL结果

Elasticsearch 通过多个索引上的 uid 获取多个文档

linq - 如何在 LINQ 中对多个表进行分组

mysql - 在 mysql5 中创建更新操作触发器时出错?

sql - 表分区,哪个更好?

node.js - 在Mac OS上安装Kibana X-Pack

MySQL GROUP 和 COUNT 多个表

php - 如何在 MySQL 中选择 TOP n 分组值的 AVG?