【问题标题】:Count occurences in a column instead of row in a table计算列中的出现次数而不是表中的行
【发布时间】:2017-05-09 11:41:28
【问题描述】:

这是我正在处理的表格:

我想计算每个用户出现 P 的次数(x216001,x2016002,..)。我该怎么做?

我也想知道我是否可以在该表本身中创建一个列,它可以计算 P 的数量。

【问题讨论】:

  • 什么时候1等于'P'? “P”是“P”,1 是 1。除此之外,这个问题是设计糟糕透顶的症状。停止。见规范化。

标签: mysql sql codeigniter


【解决方案1】:

您需要规范化您的表结构以使用标签将值存储在多行中。不过这里有一个方法

select 
case when col1='P' then 1 else 0 end +
case when col2='P' then 1 else 0 end +
case when col3='P' then 1 else 0 end +
.
.
.
case when colN='P' then 1 else 0 end 
as counting
from table

【讨论】:

  • 谢谢,这对我有用。有什么方法可以使用 for 循环来代替执行这些任务或重复每一行?因为在 'colN' 中,N 是一个可以改变的变量。任何帮助都会很棒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多