where
'u kullanın. Ve parantezler select distinct
için uygun değildir (distinct
bir işlev değildir).
SELECT COUNT(DISTINCT hash) AS total
FROM behaviour
WHERE date(timestamp) = curdate();
O sütun üzerinde bir işlevi kullanmadan WHERE
maddesini yazmak daha iyidir: daha karmaşık olmasına rağmen
SELECT COUNT(DISTINCT hash) AS total
FROM behaviour
WHERE timestamp >= curdate() AND timestamp < date_add(curdate, interval 1 day);
, bu veritabanı altyapısı bir dizin üzerinde kullanmanıza olanak sağlar Sana niyetinde şüpheli behaviour(timestamp, hash)
üzerine behaviour(timestamp)
(veya daha iyisi,
DÜZENLEME:.
Eğer hash
istiyorsanız
select count(*)
from (select hash
from behaviour
where timestamp >= curdate() AND timestamp < date_add(curdate, interval 1 day)
group by hash
having count(*) = 1
);
Sütun adından önce veya sonra boşluk olabilir. Lütfen kontrol edin. – Arun
Ne yapmaya çalışıyorsun? Bir satırı 1 değeriyle döndürün (mevcut tarih için varsa)? – jarlh
@jarlh Davranış tablosunda, bazı karma değerler 1 kereden fazla görünür. diğer karma değerler sadece 1 kez görünür. Sadece 1 kez görünen karma satırları saymak istiyorum. – villoui