sql - 嵌套选择以计算项目并将它们汇总到 MS Access 的新列中
问题描述
我在 MS Access 中有一个下表,并希望在一个表中获得计数,如下所示。按系统分组,两列计算锁定/解锁状态。
|SYSTEM|LOCK_STAT|
------------------
|A |Locked |
|A |Unlocked |
|A |Locked |
|B |Locked |
|B |Unlocked |
|B |Unlocked |
结果应该如下:
|SYSTEM|UNLOCKED|LOCKED|
| A | 1| 2|
| B | 2| 1|
解决方案
用于IIF()
条件聚合:
select
SYSTEM,
sum(iif(lock_stat = 'Unlocked', 1, 0)) as UNLOCKED,
sum(iif(lock_stat = 'Locked', 1, 0)) as LOCKED
from tablename
group by SYSTEM
或对布尔条件求和,因为TRUE
转换为-1
,得到它们的绝对值:
select
SYSTEM,
abs(sum(lock_stat = 'Unlocked')) as UNLOCKED,
abs(sum(lock_stat = 'Locked')) as LOCKED
from tablename
group by SYSTEM
推荐阅读
- java - Springboot,如何在启动时以编程方式显示横幅,再次
- php - 使用可调用参数修改查询
- javascript - 无法删除特定标记。错误:未捕获类型错误:无法读取未定义的属性“setMap”
- ios - UITableviewCell 在动态设置高度为零时卡住滚动
- ios - 如何在谷歌地图中使用 url 和参数在起点和终点之间制作路线?
- swift - ios swift FBSDKShareKit 在没有 ShareDialog 视图控制器的情况下发布(共享)内容
- javascript - Javascript 中的模块化
- python - Python中具有无序索引的多维数组
- android - 如何在 Native 代码中访问 SQLite 数据库?
- javascript - JavaScript 从音频中解析元数据 (ICY)