带有have的mySQL查询给了我一个错误。如何修复它?
运行此查询时,在phpmydamin上显示以下错误消息:“having子句”中的未知列“timestamp” 我的列名是带有have的mySQL查询给了我一个错误。如何修复它?,mysql,sql,Mysql,Sql,运行此查询时,在phpmydamin上显示以下错误消息:“having子句”中的未知列“timestamp” 我的列名是timestamp SELECT DISTINCT ( hash ) AS total FROM behaviour HAVING total =1 and date(timestamp) = curdate() 如何获取今天的哈希数?使用where。括号不适用于选择不同的(不同的不是函数)。我怀疑你打算: SELECT COUNT(DISTINCT hash) AS tot
timestamp
SELECT DISTINCT (
hash
) AS total
FROM behaviour
HAVING total =1 and date(timestamp) = curdate()
如何获取今天的哈希数?使用
where
。括号不适用于选择不同的
(不同的
不是函数)。我怀疑你打算:
SELECT COUNT(DISTINCT hash) AS total
FROM behaviour
WHERE date(timestamp) = curdate();
最好在不使用列上的函数的情况下编写WHERE
子句:
SELECT COUNT(DISTINCT hash) AS total
FROM behaviour
WHERE timestamp >= curdate() AND timestamp < date_add(curdate, interval 1 day);
要仅对存在的哈希值计数一次,请执行以下操作:
select count(*)
from
(
select hash
from behavior
where date(timestamp) = curdate()
group by hash
having count(*) = 1
) dt
内部select(派生表)将只返回一次现有的哈希值。外部选择将对这些行进行计数。列名前后可能有空格。请检查,你想做什么?返回值为1的一行(如果当前日期存在)?@jarlh在行为表中,某些哈希值出现1次以上。其他哈希值仅出现1次。我想计算只出现1次的哈希行。谢谢,但让我重新表述一下。在行为表中,某些哈希必须出现1次以上。其他人只出现一次。我想计算只出现1次的哈希值,而不是所有的哈希值。因此,您要计算的是唯一的行数。我想计算今天出现的哈希行
select count(*)
from
(
select hash
from behavior
where date(timestamp) = curdate()
group by hash
having count(*) = 1
) dt