SELECT * FROM fact_pscp_s1mme WHERE reportdate in ('2024-09-26') and reporthour in (8) AND imsi!='' AND msisdn='' ; 在此SQL明的基础之上,统计一下前top10
时间: 2024-09-27 14:05:23 浏览: 34
linux上批量执行命令和copy文件的脚本,解决pssh_pscp需要配置免登陆的问题。_psshcp-exp.zip
在这个SQL查询的基础上,如果你想要统计报告日期为2024年9月26日、报时为8点并且既没有IMSI也没有MSISDN的数据,你可以先筛选出这些记录,然后再进行计数并取前10条。但是由于MySQL默认不会对结果集进行排名,你需要借助子查询或者窗口函数来完成前10个记录的筛选。以下是修改后的SQL语句示例:
```sql
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) as row_num
FROM fact_pscp_s1mme
WHERE reportdate = '2024-09-26'
AND reporthour = 8
AND imsi != ''
AND msisdn = ''
) ranked_data
WHERE row_num <= 10
ORDER BY row_num;
```
这个查询首先通过嵌套查询筛选出符合条件的数据,然后利用`ROW_NUMBER()`窗口函数给结果按行计数降序排列,最后外层查询只选择`row_num`小于等于10的结果。这样就会得到报告日期、报时以及既无IMSI也无MSISDN的前10条记录。
阅读全文