mysql查询 - 需要一些分组帮助

php*_*00b 0 mysql group-by count

我想知道如何编写这个查询,它有点复杂......

这是存储在表中的示例:

KID     Utype Qtype Qname     Resp UID
Q24-YYY Case T001 HM-99678 N8944 2455
Q24-YYY Case T001 HM-99678 N8944 9874
Q24-YYY Case F099 HM-99678 N8944 6554
Q24-YYY Case F099 HM-99678 SD789 2331
Q24-YYY Case F099 HM-99678 SD789 1772
Q24-YYY Case T001 HM-99678 PX667 8897
Q24-YYY Case F099 HM-99678 PX667 4412
Q24-YYY Case F099 HM-99678 SD789 6643
Q24-YYY Case F099 HM-99678 PX667 3221
Q24-YYY Case T001 HM-99678 SD789 6337
Run Code Online (Sandbox Code Playgroud)

我要做的是首先,通过Resp列对其进行分组,然后通过Qtype列对其进行分组,并为Resps添加计数列...这样,结果如下所示:

KID     Utype Qtype Qname     Resp COUNT
Q24-YYY Case T001 HM-99678 N8944 2
Q24-YYY Case F099 HM-99678 N8944 1
Q24-YYY Case T001 HM-99678 SD789 1
Q24-YYY Case F099 HM-99678 SD789 3
Q24-YYY Case T001 HM-99678 PX667 1
Q24-YYY Case F099 HM-99678 PX667 2
Run Code Online (Sandbox Code Playgroud)

我一直在使用group by进行各种迭代,但到目前为止,我得到了无效的组列错误等等......

And*_*mar 5

您应该对您不计算的所有列进行分组:

select KID, Utype, Qtype, Qname, Resp, count(*)
from YourTable
group by KID, Utype, Qtype, Qname, Resp
Run Code Online (Sandbox Code Playgroud)

MySQL并没有真正强制执行,但是如果你忘记对你使用的列进行分组,你基本上会得到一个随机值.