1
AoEiuV020JP 2023-08-01 17:01:11 +08:00
如果效率更高了的话我会怀疑数据库引擎的质量,
|
2
Masoud2023 2023-08-01 17:03:45 +08:00 1
该写的 where 不写,敢这么写 SQL 我要是老板你第二天不用来了
|
3
fkdog 2023-08-01 17:06:21 +08:00
@Masoud2023 都什么逻辑?
count 带条件的写法在有带 group by 的查询语句里不是很常见? |
4
Masoud2023 2023-08-01 17:18:27 +08:00
@fkdog #3 可读性不太好,非必要我绝对不会这么写
|
5
fkdog 2023-08-01 17:32:21 +08:00 1
@Masoud2023 那说明你写的少呗. 平时业务不涉及到复杂统计需求.
|
6
silencil 2023-08-01 17:32:41 +08:00
不是第一个可读性更好吗?
|
7
yinmin 2023-08-01 17:37:40 +08:00 via iPhone 5
## ✅:
### select count(*) from t where a>b |
8
wxf666 2023-08-01 17:40:22 +08:00
怎么我感觉,你想写的是:select sum(a > b) from t ?
|
9
philchang1995 2023-08-01 17:41:01 +08:00
又学到了一个新知识,哈哈
|
10
Saturn72 2023-08-01 19:35:37 +08:00
你这么写 a 和 b 相等时怎么算 我测 a=b 也会计数啊
|
11
via 2023-08-01 23:40:44 +08:00 via iPhone
抱歉上面的例子少了一个 group by
ps:我的 id 是 op subaccount |
12
chunqicoder 2023-08-02 09:39:57 +08:00
@yinmin
正解,因为 where 先执行而 select 后执行,where 可以预先过滤更多的数据,等等我怎么感觉没什么区别 |
13
lasuar 2023-08-02 10:28:18 +08:00
1. 哪个睿智 boy 会用到第二种写法?莫非是楼主
2. 第一种写法算是一种奇技淫巧,不常见,可读性对比常规 where 写法差不多 |
14
chunqicoder 2023-08-02 10:37:40 +08:00
@lasuar
第二种写法有第二种写法的好处,比如需要多种筛选条件,我做的消费统计规则比较复杂,很多地方都使用了第二种方法,不在 where 过滤数据是因为有重复的统计 |
15
lasuar 2023-08-02 10:55:44 +08:00
@lemonteacode #14 贴个示例
|
16
troywinter 2023-08-02 16:55:15 +08:00
不建议在 OLTP 里这么搞,除非你对这个 execution plan 有清晰的预估,知道会扫描多少行数,复杂度是怎样的,不然这就是给自己挖坑
|