我有这个表,我想添加列总结它:
现在列表:
| 姓名|PAT_ID|有_T|有_Y|有_G|
| - ------|- ------|- ------|- ------|- ------|
| 布莱恩|一百二十三|十||十|
| 布莱恩|三五六|十|十||
| 布莱恩|小行星3546||十|十|
| 布莱恩|九八七|十|||
我希望在表中添加计算数据的列,并在每一行中给出一个值:
预期输出:
| 姓名|PAT_ID|有_T|有_Y|有_G|总计_T|总计_Y|总计_PATS|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 布莱恩|一百二十三|十||十|三个|第二章|四个|
| 布莱恩|三五六|十|十||三个|第二章|四个|
| 布莱恩|小行星3546||十|十|三个|第二章|四个|
| 布莱恩|九八七|十|||三个|第二章|四个|
有人帮我完成了最后一个(Total_PATS),使用以下代码计算所有行:
COUNT(*) OVER () AS [total] << for all rows.
如何用条件来做?我有'X'所以我想统计所有has_T有X的行...
2条答案
按热度按时间lxkprmvk1#
当你存储空白值或空格值时,
COUNT
仍然会计算这些值lCOUNT
* 计数 * 非NULL
值。理想情况下,你应该存储NULL
,而不是''
,' '
(甚至' '
),这会使COUNT
更容易地处理这些值。但是,您可以将
NULL
中的值:xpcnnkqh2#
我们可以将条件计数用于
CASE
:这将仅计算
X
值。正如在注解中所说的,使用
NULL
而不是空格/空字符串会更好,例如,因为COUNT忽略NULL
,所以我们可以简单地写COUNT(has_t)
等。