sql - SQL根据条件创建修改记录
问题描述
我有下表:
id activity xuser isDone
---------------------------------------
1 abc tom y
2 def tom n
3 hij jeff y
4 klm jeff n
5 nop jeff n
我想得到以下结果:
nCol tom jeff
----------------------------
done 1 1
undone 1 2
我怎样才能在 SQL 语法中做到这一点?那我怎样才能把它转换成 linq 语法呢?
谢谢你。
解决方案
返回列(xuser、donecount、undonecount)要灵活得多。
做一个GROUP BY
,使用case
表达式做条件聚合:
select xuser,
sum(case when isDone = 'y' then 1 else 0 end) as donecount,
sum(case when isDone = 'n' then 1 else 0 end) as undonecount
from tablename
group by xuser
(其他人必须进行 linq 编码。)
推荐阅读
- jmeter - Influxdb - 配置文件的 [graphite] 和 [http] 中的绑定地址之间的区别
- python - 满足一定数量(条件)时如何对列的子集求和
- r - 如何为特定行重新编码多个值 tidyverse
- ios - 如何像 App Store 一样通过双击使用 Face ID?
- excel - 如何让第二个 y 轴从与第一个 y 轴相同的 0 开始
- python - 将字典字典转换为字符串而不是元组,然后输出到文件 python 3
- hibernate - Spring Boot 2 Hibernate 保存并不总是提交
- react-native - React Native 异步字体加载
- html - 使用 img 的标题属性作为图像图例?
- java - Firebase Android读取数据->处理->更新数据“全局变量问题”