[英]Count SQL Syntax COUNT (value) multiple columns
您好我试图了解SQL中的Count,但我甚至无法计算特定列中的值的次数
我的数据库结构是这样的。 (表:自然)
ID | one | two | three |
1 | 34 | 45 | 80 |
2 | 41 | 34 | 7 |
3 | 7 | 18 | 22 |
4 | 8 | 7 | 45 |
我试着这个
$result=mysql_query("SELECT COUNT(one) AS total FROM natural
WHERE one=7")or die("Error: ".mysql_error());
$data=mysql_fetch_assoc($result);
echo $data['total'];
但即使只有1列计数我也无法得到结果..
我需要的是计算所有列中“值”(例如7)的次数
比如在这个例子中值7 = 3总数(多列)
我怎么能做这样的SQL。
编辑:尝试这个(我的语法问题在哪里?)
$result=mysql_query("SELECT COUNT(DISTINCT id) TotalCount FROM tblname WHERE 7 IN (one, two, three)")or die("Error: ".mysql_error());
$data=mysql_fetch_assoc($result);
echo $data['TotalCount'];
我很高兴,谢谢你的答案,但我认为我的问题是mysql_query()因为我总是有一个语法问题,你的所有答案和它显然是我。
$result=mysql_query("SELECT (SUM(CASE WHEN one = 7 THEN 1 ELSE 0 END) +
SUM(CASE WHEN two = 7 THEN 1 ELSE 0 END) +
SUM(CASE WHEN three = 7 THEN 1 ELSE 0 END)) TotalCount
FROM natural")or die("Error: ".mysql_error());
$data=mysql_fetch_assoc($result);
echo $data['TotalCount'];
要修复这最后一个代码,只需使用one
和two
...等等, natural
就是正确的语法:D
即使值在列之间重复,这个也会给出正确的答案
SELECT (SUM(CASE WHEN one = 7 THEN 1 ELSE 0 END) +
SUM(CASE WHEN two = 7 THEN 1 ELSE 0 END) +
SUM(CASE WHEN three = 7 THEN 1 ELSE 0 END)) TotalCount
FROM table1
如果您有以下数据
| ID | ONE | TWO | THREE |
--------------------------
| 1 | 34 | 45 | 80 |
| 2 | 41 | 7 | 7 |
| 3 | 7 | 18 | 22 |
| 4 | 7 | 7 | 45 |
输出将是
| TOTALCOUNT |
--------------
| 5 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.