Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL Easy more than function

Tags:

database

mysql

I am trying to do this:

SELECT Filmai.Pagrind_atlik, ( COUNT(Filmai.Pagrind_atlik)) AS Kiek_kartu_filmavosi 
FROM Filmai 
WHERE  Kiek_kartu_filmavosi >2 
GROUP BY Filmai.Pagrind_atlik;   

But it wont allow me to make >2 thing. So maybe any suggestions?

like image 936
user2965118 Avatar asked Jan 26 '26 06:01

user2965118


2 Answers

You need to use HAVING clause

SELECT Filmai.Pagrind_atlik, 
( COUNT(Filmai.Pagrind_atlik)) AS Kiek_kartu_filmavosi
FROM Filmai  
GROUP BY Filmai.Pagrind_atlik
HAVING Kiek_kartu_filmavosi >2;

WHERE is applied before GROUP BY, HAVING is applied after (and can filter on aggregates).

like image 96
M Khalid Junaid Avatar answered Jan 27 '26 23:01

M Khalid Junaid


WHEN you want to limit an aggregate function's results you can't use it in the WHERE clause. You have to use HAVING:

SELECT Filmai.Pagrind_atlik,
  COUNT(Filmai.Pagrind_atlik) AS Kiek_kartu_filmavosi
FROM Filmai
GROUP BY COUNT(Filmai.Pagrind_atlik)
HAVING COUNT(Filmai.Pagrind_atlik) > 2
like image 44
Filipe Silva Avatar answered Jan 27 '26 23:01

Filipe Silva