2.7. �ۼ�����

�ʹ����������ϵ���ݿ��Ʒһ���� PostgreSQL ֧�־ۼ������� һ���ۼ������Ӷ���������м����һ������� ���磬��������һ���м����ϼ��� count����Ŀ���� sum���ͣ���avg����ֵ���� max�����ֵ����min����Сֵ���ĺ�����

���磬���ǿ��������������ҳ����м�¼�е����е�����¶�

SELECT max(temp_lo) FROM weather;

 max
-----
  46
(1 row)

���������֪���ö����������ĸ����У����ǿ�����

SELECT city FROM weather WHERE temp_lo = max(temp_lo);     WRONG

�����������������ת����Ϊ�ۼ� max �������� WHERE �Ӿ��С� �����������������Ϊ WHERE �Ӿ������Щ�п��Խ���ۼ��׶Σ�����������ھۼ�����֮ǰ���㡣�� ����������ͨ������������������ʵ�����ǵ�Ŀ�ģ��������ǾͿ���ʹ���Ӳ�ѯ��

SELECT city FROM weather
    WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

     city
---------------
 San Francisco
(1 row)

�������� OK �ģ���Ϊ�Ӳ�ѯ��һ�ζ����ļ��㣬�����������IJ�ѯ������Լ��ľۼ���

�ۼ�ͬ��Ҳ������ GROUP BY �Ӿ䡣���磬 ���ǿ��Ի�ȡÿ�����е��µ����ֵ

SELECT city, max(temp_lo)
    FROM weather
    GROUP BY city;

     city      | max
---------------+-----
 Hayward       |  37
 San Francisco |  46
(2 rows)

����������ÿ������һ������� ÿ���ۼ����������ƥ��ó��е����������ġ� ���ǿ����� HAVING ������Щ���飺

SELECT city, max(temp_lo)
    FROM weather
    GROUP BY city
    HAVING max(temp_lo) < 40;

  city   | max
---------+-----
 Hayward |  37
(1 row)

������ֻ������Щ temp_lo ��ֵ�����е��� 40 ���¶ȵij��С� ����������ֻ������Щ������ "S" ��ͷ�ij��У����ǿ�����

SELECT city, max(temp_lo)
    FROM weather
    WHERE city LIKE 'S%'(1)
    GROUP BY city
    HAVING max(temp_lo) < 40;

(1)
LIKE ��ģʽƥ�䣬�� Section 9.7 ���н��͡�

���ۼ���SQL�� WHERE �Լ� HAVING �Ӿ�֮��Ĺ�ϵ�����Ƿdz���Ҫ�� WHERE �� HAVING �Ļ����������£� WHERE �ڷ���;ۼ�����֮ǰѡȡ�����У���ˣ���������Щ�н���ۼ����㣩�� �� HAVING �ڷ���;ۼ�֮��ѡȡ������С� ��ˣ�WHERE �Ӿ䲻�ܰ����ۼ������� ��Ϊ��ͼ�þۼ������ж���Щ��������ۼ�������û������ġ� �෴��HAVING �Ӿ����ǰ����ۼ������� ���ϸ�˵���������д��ʹ�þۼ��� HAVING �Ӿ䣬 ��������ֻ�ǰ׷Ѿ���ͬ�����������Ը���Ч������ WHERE �׶Ρ���

��ǰ�����������ǿ����� WHERE ��Ӧ�ó����������ƣ���Ϊ������Ҫ�ۼ��� �������� HAVING ���������Ƹ��Ӹ�Ч����Ϊ���DZ�����Ϊ��Щδͨ�� WHERE �����н��з���;ۼ����㡣