sql - Elasticsearch GROUP BY 列 HAVING COUNT > x
问题描述
在 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翻译查询
例如
POST _xpack/sql/translate
{
"query": "SELECT * FROM IndexName WHERE id=1 ",
"fetch_size": 10
}
将您的查询与您的索引名称与您的 SQL 查询和列名称一起放置(名称应与弹性搜索中的名称匹配)。
如果它解决了您的问题,请标记答案。谢谢
推荐阅读
- javascript - 在 React 应用程序中使用相同的套接字实例
- playframework - Play Framework WS 主机名验证证书问题
- cocoa - 如何分辨 NSColor controlAccentColor 的名称
- reactjs - React-Native 错误将使用 Expo 的视频添加到 App.js 作为背景
- twitter-bootstrap - 如何在卡组引导 vue 上设置行中的列?
- sqlite - 在 SQLite 中查找重复次数较少的值
- rust - 函数返回一个闭包,该闭包返回一个使用环境变量的闭包
- python - 解释神经网络的训练验证损失
- sql - SQL 数据查询错误:关键字“join”附近的语法不正确
- apt-get - apt-get install 坏了,需要撤消安装