表结构如下
航班号 Flight_NO
旅客姓名 Name
进港标示 In_Flag 1或0
出港标示 Out_Flag 1或0
会员标示 Mem_Flag 1或0
其中,同一个航班可能是进港也可能是出港,进港标示和出港标示相反,也就是要么出港为1进港为0,要么出港为0进港为1
现在要按 航班号 统计如下数据
进港人数,出港人数,会员人数,会员出港率,会员进港率
我能写出来,但上面几项都是分了好几次查询才出来,感觉效率很差,想请教如何写效率比较高,谢谢
------解决方案--------------------
进港标示 和 出港标示 放在一个字段里就可以了,InOrOut 0为进,1为出
你的查询都比较单纯没啥好优化的
实在数据量大就对表做时间切割,按年,按季度,按月,按周,按日 根据你的数据量做一个符合你性能需求的切割方式
至于大型报表太慢怎么办的话,可以考虑做汇总表,每个周期产生汇总,反正你的数据应该不会有修改历史数据的需求,使用汇总表输出大时间跨度需求正好
------解决方案--------------------
必须分几次查呀,效率不会差吧
------解决方案--------------------
70W数据3秒肯定是慢了,请适当添加索引
建议使用
set statistics io on
set statistics time on
来看看实际的资源消耗更为准确
对0,1两种单纯的做group by效果并不好
最好贴出你现有语句,我们来看看有没有可以改动的地方