Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有have的mySQL查询给了我一个错误。如何修复它?_Mysql_Sql - Fatal编程技术网

带有have的mySQL查询给了我一个错误。如何修复它?

带有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

运行此查询时,在phpmydamin上显示以下错误消息:“having子句”中的未知列“timestamp”

我的列名是
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