我有这样的查询:
SELECT col1, COUNT(DISTINCT col2) FROM tb GROUP BY col1;
结果是:
col1 COUNT(DISTINCT col2)
----------
A 3
B 4
C 1
D 1
我需要自定义查询,例如当col1为B时,结果应为:
col1 COUNT(DISTINCT col2)
----------
B 4
我使用了这个查询:
SELECT col1, COUNT(DISTINCT col2) FROM tb WHERE col1="B" GROUP BY col1
但它不返回任何行,它是SQLyog Ultimate- MySQL GUI v11.11。我是怎么了? 感谢。
答案 0 :(得分:1)
结果是NULL
",我猜测查询没有返回任何行。如果WHERE
条件过滤掉所有内容,就会发生这种情况。如果" B"不是真的" B",但是有隐藏的字符,例如末尾或开头的空格。试试这个版本的查询:
SELECT col1, COUNT(DISTINCT col2)
FROM tb
WHERE col1 LIKE '%B%'
GROUP BY col1;
更为遥远的可能性是" B"是列名。在这种情况下,使用单引号将解决问题(在MySQL中)。
答案 1 :(得分:0)
使用它:
SELECT col1, COUNT(DISTINCT col2) FROM tb WHERE col1='B' GROUP BY col1
答案 2 :(得分:0)
只需使用:
SELECT col1, COUNT(DISTINCT col2) FROM tb WHERE col1 LIKE 'B' GROUP BY col1;