在w3schools和google上尝试过我常用的参考资料。没有运气
我正在尝试产生以下结果。 QTY是派生列
| Position | QTY
--------------------
1 Clerk 2
2 Mgr 2
这是我没有运气的地方:
SELECT Position, Count(position) AS 'QTY'
FROM tblemployee
Where ('QTY' != 1)
GROUP BY Position
我知道我的位置设置为varchar(255) Count产生一个整数数据,我的where clasue是准确的,这让我相信Count()正在阻塞我。请举一个例子,以便我稍后再提及。谢谢你的帮助!
答案 0 :(得分:4)
SELECT Position, Count(position) AS 'QTY'
FROM tblemployee
GROUP BY Position
HAVING Count(Position) != 1
注意:这就是它在SQL Server&也应该是mysql的情况(我猜)。
答案 1 :(得分:2)
这就是HAVING
子句的用途:
SELECT Position, Count(position) AS 'QTY'
FROM tblemployee
GROUP BY Position
HAVING QTY != 1
答案 2 :(得分:1)
在SQL Server中,我会这样做:
SELECT Position, Count(position) AS 'QTY'
FROM tblemployee
GROUP BY Position
HAVING COUNT(position) <> 1
我不知道它是否适用于MySql,但我相信它是标准的SQL语法。
答案 3 :(得分:0)
有几个问题。在SQL中,您无法按名称引用QTY列(在本例中)。此外,由于您要分组并想要排除某个值,您必须使用“HAVING”子句而不是where子句。
可以使用where子句来删除您不想计算的内容。 (见例2)
ST
SELECT Position, Count(position) AS QTY
FROM tblemployee
GROUP BY Position
HAVING Count(position) <> 1
-- Example 2
-- Don't count poor old Johnny
SELECT Position, Count(position) AS QTY
FROM tblemployee
WHERE Position <> 'Johnny'
GROUP BY Position
HAVING Count(position) <> 1