SELECT domain_name,http_port,DATE_FORMAT(happenTime, '%Y-%m-%d'),SUM(ll) / (1024 * 1024) AS ll, SUM(llsd) / (1024 * 1024) AS llsd, SUM(cksj) / (1024 * 1024) AS cksj FROM video_traffic_record t group by domain_name,http_port,DATE_FORMAT(happenTime, '%Y-%m-%d')用elasticsearch-sql6.2.3.0怎么写?
时间: 2024-04-26 09:25:10 浏览: 10
在 Elasticsearch 6.2.3 版本中,你可以使用以下查询语句来实现上述 SQL 查询:
POST _xpack/sql?format=txt
{
"query": "SELECT domain_name, http_port, DATE_FORMAT(happenTime, 'yyyy-MM-dd'), SUM(ll)/(1024*1024) AS ll, SUM(llsd)/(1024*1024) AS llsd, SUM(cksj)/(1024*1024) AS cksj FROM \"video_traffic_record\" GROUP BY domain_name, http_port, DATE_FORMAT(happenTime, 'yyyy-MM-dd')"
}
注意,这里使用的是 Elasticsearch 内置的 SQL 查询语言,需要在请求 URL 中添加 `_xpack/sql`。查询结果将会以文本格式返回。
相关问题
QueryWrapper DATE_FORMAT(time, '%Y-%m-%d')
在使用QueryWrapper的时候,可以使用`DATE_FORMAT`函数来格式化日期字段。`DATE_FORMAT`函数用于将日期字段按照指定的格式进行格式化。
假设你有一个时间字段`time`,你想要将其格式化为`YYYY-MM-DD`的形式,可以使用如下的方式:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class YourService {
@Autowired
private YourMapper yourMapper;
public List<YourEntity> getEntitiesByDate() {
QueryWrapper<YourEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.apply("DATE_FORMAT(time, '%Y-%m-%d')", "2021-12-31");
// 其他查询条件...
return yourMapper.selectList(queryWrapper);
}
}
```
在上述示例中,我们创建了一个`QueryWrapper<YourEntity>`对象,并使用`apply`方法来应用`DATE_FORMAT`函数,指定格式化的日期为`2021-12-31`。你可以在`apply`方法中添加其他查询条件来满足你的需求。
这样,你就可以在使用QueryWrapper时使用`DATE_FORMAT`函数对时间字段进行格式化了。请注意,具体函数的写法可能会因为你所使用的数据库而有所不同,请根据你所使用的数据库的函数语法进行相应的调整。
SELECT domain_name, http_port, DATE_FORMAT(FROM_UNIXTIME(TIME), '%Y-%m-%d') AS day, COUNT(*) AS count, SUM(ll) / (1024 * 1024) AS ll, SUM(llsd) / (1024 * 1024) AS llsd, SUM(cksj) / (1024 * 1024) AS cksj FROM video_traffic_record GROUP BY domain_name, http_port, day ORDER BY day DESC LIMIT 10 OFFSET 2如何转换成elasticsearch-sql6.2.3.0?
如果您使用的是 Elasticsearch-sql6.2.3.0 插件,可以使用类似 SQL 的查询语句来查询 Elasticsearch 数据。
以下是与原始查询语句相对应的 Elasticsearch-sql6.2.3.0 查询语句:
```
POST /_sql?format=txt
{
"query": "SELECT domain_name, http_port, DATE_FORMAT(FROM_UNIXTIME(TIME), '%Y-%m-%d') AS day, COUNT(*) AS count, SUM(ll) / (1024 * 1024) AS ll, SUM(llsd) / (1024 * 1024) AS llsd, SUM(cksj) / (1024 * 1024) AS cksj FROM video_traffic_record GROUP BY domain_name, http_port, day ORDER BY day DESC LIMIT 2,10"
}
```
注意,Elasticsearch-sql6.2.3.0 支持类似 SQL 的查询语句,但是并不支持所有的 SQL 语法,因此有些查询语句可能无法转换为 Elasticsearch-sql6.2.3.0 查询语句。另外,Elasticsearch-sql6.2.3.0 插件已经停止维护,建议使用更新的 Elasticsearch 版本自带的 SQL 查询语法。