.


:




:

































 

 

 

 


COUNT ,




, COUNT , , , , 6.4:

SELECT COUNT (*)
FROM Customers

=============== SQL Execution Log ============
| SELECT COUNT (*) |
| FROM Customers; |
| ==============================================|
| |
| ------- |
| 7 |
===============================================

6.4.

COUNT NULL, , DISTINCT. DISTINCT , COUNT , , NULL . DISTINCT COUNT (*), , . , , , ( , ). , , - , , , COUNT .

( ) ALL, , DISTINCT, . ANSI COUNT, .

ALL * COUNT:

ALL .

ALL NULL.

* , NULL , COUNT; COUNT NULL . (COUNT) NULL rating ( ):

SELECT COUNT (ALL rating)
FROM Customers;

,

, . , , . ( , DISTINCT .) , , ( blnc) . , . :

SELECT MAX (blnc + amt)
FROM Orders;

blnc amt , . , , . , . , , .

, SQL, , 7.

GROUP BY

GROUP BY , . SELECT. , , . , MAX (amt) snum. GROUP BY, , :

SELECT snum, MAX (amt)
FROM Orders
GROUP BY snum;

6.5.

=============== SQL Execution Log ==============
| SELECT snum, MAX (amt) |
| FROM Orders |
| GROUP BY snum; |
| =============================================== |
| snum |
| ------ -------- |
| 1001 767.19 |
| 1002 1713.23 |
| 1003 75.75 |
| 1014 1309.95 |
| 1007 1098.16 |
=================================================

6.5. .

GROUP BY , . , snum, MAX . , GROUP BY, , , , . , . GROUP BY . , , . , , MAX , :

SELECT snum, odate, MAX (amt)
FROM Orders
GROUP BY snum, odate;

6.6.

=============== SQL Execution Log ==============
| SELECT snum, odate, MAX (amt) |
| FROM Orders |
| GROUP BY snum, odate; |
| =============================================== |
| snum odate |
| ------ ---------- -------- |
| 1001 10/03/1990 767.19 |
| 1001 10/05/1990 4723.00 |
| 1001 10/06/1990 9891.88 |
| 1002 10/03/1990 5160.45 |
| 1002 10/04/1990 75.75 |
| 1002 10/06/1990 1309.95 |
| 1003 10/04/1990 1713.23 |
| 1014 10/03/1990 1900.10 |
| 1007 10/03/1990 1098.16 |
=================================================

6.6.

, , , , .

HAVING

, , , $3000.00. WHERE ( , ), , . , - :

SELECT snum, odate, MAX (amt)
FROM Oreders
WHERE MAX (amt) > 3000.00
GROUP BY snum, odate;

ANSI. $3000.00, HAVING. HAVING , , WHERE . :

SELECT snum, odate, MAX (amt)
FROM Orders
GROUP BY snum, odate
HAVING MAX (amt) > 3000.00;

6.7.

=============== SQL Execution Log ==============
| SELECT snum, odate, MAX (amt) |
| FROM Orders |
| GROUP BY snum, odate |
| HAVING MAX (amt) > 3000.00; |
| =============================================== |
| snum odate |
| ------ ---------- -------- |
| 1001 10/05/1990 4723.00 |
| 1001 10/06/1990 9891.88 |
| 1002 10/03/1990 5160.45 |
=================================================

6.7.

HAVING , SELECT, GROUP BY. . :

SELECT snum, MAX (amt)
FROM Orders
GROUP BY snum
HAVING odate = 10/03/1988;

date HAVING, ( ) . , HAVING GROUP BY. :

SELECT snum, MAX (amt)
FROM Orders
WHERE odate = 10/03/1990
GROUP BY snum;

// Interbase:

WHERE odate = CAST('10/03/1988' AS DATE)

 

6.8.

=============== SQL Execution Log ==============
| SELECT snum, odate, MAX (amt) |
| FROM Orders |
| GROUP BY snum, odate; |
| =============================================== |
| snum |
| ------ -------- |
| 1001 767.19 |
| 1002 5160.45 |
| 1014 1900.10 |
| 1007 1098.16 |
=================================================

6.8: 3 .

odate , , , . , , - , : " 3 ". 7, , .

, HAVING , . , , GROUP BY . , Serres Rifkin:

SELECT snum, MAX (amt)
FROM Orders
GROUP BY snum
HAVING snum IN (1002,1007);

6.9.

=============== SQL Execution Log ==============
| SELECT snum, MAX (amt) |
| FROM Orders |
| GROUP BY snum |
| HAVING snum IN (1002, 1007); |
| =============================================== |
| snum |
| ------ -------- |
| 1002 5160.45 |
| 1007 1098.16 |
=================================================

6.9. HAVING GROUP BY.





:


: 2016-07-29; !; : 652 |


:

:

, - , ; , - .
==> ...

1395 - | 1423 -


© 2015-2024 lektsii.org - -

: 0.016 .