相关疑难解决方法(0)

如果所有列值都为true,则返回true

在PostgreSQL中有一种更快的方法来基本上在几行中执行if吗?

说我有一张桌子

ticket | row | archived
1      | 1   | true
1      | 2   | true
1      | 3   | true
2      | 1   | false
2      | 2   | true
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以在ticket =的列下面做一个if语句?因此,ticket = 1的地方是真的

true && true && true = true
Run Code Online (Sandbox Code Playgroud)

并且ticket = 2将是假的,因为

false && true = false
Run Code Online (Sandbox Code Playgroud)

或者我应该坚持下去

SELECT ( (SELECT COUNT(*) FROM table WHERE ticket = 1)
       = (SELECT COUNT(*) FROM table WHERE ticket = 1 AND archived = true) )
Run Code Online (Sandbox Code Playgroud)

sql postgresql boolean-logic exists aggregate-functions

14
推荐指数
2
解决办法
1万
查看次数

如果表中包含大量未使用/未选择的列,是否会影响性能?

背景: 我有一张叫做汽车的桌子,里面装着很多二手车,约100万行.该表有170多列.该表仅针对各列进行索引.大多数列都是布尔值(例如has_automatic_gearbox等),其余的是字符串和数字(​​例如颜色和价格).这些车在一个视图中显示,我在170个中使用了大约80列.

我的问题: 所以我的问题是,它是否会对性能产生影响,是否在搜索时只选择表格中的80列,或者另一方面我创建了一个仅包含80列的新表格我需要,而不是总共170列?换句话说,它是否会对性能产生影响,表是否包含未被选中的列?

sql postgresql performance

3
推荐指数
1
解决办法
2695
查看次数