PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 2. SQL ���� | Fast Forward | Next |
�ʹ����������ϵ���ݿ��Ʒһ���� 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;
���ۼ���SQL�� WHERE �Լ� HAVING �Ӿ�֮��Ĺ�ϵ�����Ƿdz���Ҫ�� WHERE �� HAVING �Ļ����������£� WHERE �ڷ���;ۼ�����֮ǰѡȡ�����У���ˣ���������Щ�н���ۼ����㣩�� �� HAVING �ڷ���;ۼ�֮��ѡȡ������С� ��ˣ�WHERE �Ӿ䲻�ܰ����ۼ������� ��Ϊ��ͼ�þۼ������ж���Щ��������ۼ�������û������ġ� �෴��HAVING �Ӿ����ǰ����ۼ������� ���ϸ�˵���������д��ʹ�þۼ��� HAVING �Ӿ䣬 ��������ֻ�ǰѾ���ͬ�����������Ը���Ч������ WHERE �Ρ���
��ǰ�����������ǿ����� WHERE ��Ӧ�ó����������ƣ���Ϊ������Ҫ�ۼ��� �������� HAVING ���������Ƹ��Ӹ�Ч����Ϊ���DZ�����Ϊ��Щδͨ�� WHERE �����н��з���;ۼ����㡣