mysql case when 不命中缓存

case when 在sql 中非常方便数据不同维度统计,但是也会出现mysql 索引不命中问题,当多个case 出现时,需要提取出来到where里面优化

优化后

SELECT
date(RecordTime) AS date,
count(
DISTINCT CASE
WHEN `Param` = '1' THEN
UserID
END
) AS 'h',
count(
DISTINCT CASE
WHEN `Param` = '2' THEN
UserID
END
) AS 's',
count(
DISTINCT CASE
WHEN `Param` = '4' THEN
UserID
END
) AS 'z'
FROM
user_prop_log_202310
WHERE
Category = '42'
GROUP BY
DATE(RecordTime)

优化前:

SELECT
date(RecordTime) AS date,
count(
DISTINCT CASE
WHEN `Category` = '42'
AND `Param` = '1' THEN
UserID
END
) AS 'h',
count(
DISTINCT CASE
WHEN `Category` = '42'
AND `Param` = '2' THEN
UserID
END
) AS 's',
count(
DISTINCT CASE
WHEN `Category` = '42'
AND `Param` = '4' THEN
UserID
END
) AS 'z'
FROM
user_prop_log_202310
GROUP BY
DATE(RecordTime)

相关推荐
4***72133 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
c***42103 小时前
Django视图与URLs路由详解
数据库·django·sqlite
数据库学啊3 小时前
团队小希望运维简单,时序数据库选型有什么推荐?
运维·数据库·时序数据库
2***65634 小时前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite
V***u4534 小时前
如何查看PostgreSQL的版本
数据库·postgresql
倔强的石头_4 小时前
openGauss向量数据库:赋能智能制造的工业AI实践
数据库
口嗨农民工4 小时前
3.2 mysql客户端和服务器的启动与停止
数据库·mysql
e***19355 小时前
【SqlServer】SQL Server Management Studio (SSMS) 下载、安装、配置使用及卸载——保姆级教程
数据库·sqlserver
6***B485 小时前
存储过程(SQL)
android·数据库·sql