我写了这个查询:
SELECT COUNT(ProductID) AS ProNumber, userID
FROM orderLog WHERE time >= CURDATE()
GROUP BY userID ORDER BY ProNumber DESC
我想这样做:
SELECT COUNT(ProductID) AS ProNumber, userID
FROM orderLog WHERE time >= CURDATE() AND ProNumber > 1000
GROUP BY userID ORDER BY ProNumber DESC
但它不起作用。 为什么?我该如何解决这个问题?
答案 0 :(得分:2)
因为在执行WHERE子句时MySQL尚不知道您的别名ProNumber
。您不应在WHERE子句
如果您只想保留COUNT(*)>的记录; 1000,你应该使用HAVING子句来过滤GROUP BY后的记录:
SELECT COUNT(ProductID) AS ProNumber, userID
FROM orderLog
WHERE time >= CURDATE()
GROUP BY userID
HAVING COUNT(ProductID) > 1000
ORDER BY ProNumber DESC
如果这不是您想要的,请添加说明,因为它不清楚
答案 1 :(得分:0)
让我们试试这个: - )
SELECT COUNT(ProductID) AS ProNumber, userID
FROM orderLog WHERE time >= CURDATE() AND ProductID> 1000
GROUP BY userID ORDER BY ProductID DESC