In MYSQL versuche ich die Aggregatfunktionen zu verstehen und versuche einige Beispiele im Northwind-Schema.Grundlegendes zu JOINS-, Unterabfrage- und Aggregatfunktionen
Die Tabelle Mitarbeiter hat die folgende Beschreibung.
+-----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| company | varchar(50) | YES | MUL | NULL | |
| last_name | varchar(50) | YES | MUL | NULL | |
| first_name | varchar(50) | YES | MUL | NULL | |
| email_address | varchar(50) | YES | | NULL | |
| job_title | varchar(50) | YES | | NULL | |
| business_phone | varchar(25) | YES | | NULL | |
| home_phone | varchar(25) | YES | | NULL | |
| mobile_phone | varchar(25) | YES | | NULL | |
| fax_number | varchar(25) | YES | | NULL | |
| address | longtext | YES | | NULL | |
| city | varchar(50) | YES | MUL | NULL | |
| state_province | varchar(50) | YES | MUL | NULL | |
| zip_postal_code | varchar(15) | YES | MUL | NULL | |
| country_region | varchar(50) | YES | | NULL | |
| web_page | longtext | YES | | NULL | |
| notes | longtext | YES | | NULL | |
| attachments | longblob | YES | | NULL | |
+-----------------+-------------+------+-----+---------+----------------+
Auch die Daten in der Tabelle sind
mysql> select city , first_name,last_name from employees;
+----------+------------+----------------+
| city | first_name | last_name |
+----------+------------+----------------+
| Seattle | Nancy | Freehafer |
| Bellevue | Andrew | Cencini |
| Redmond | Jan | Kotas |
| Kirkland | Mariya | Sergienko |
| Seattle | Steven | Thorpe |
| Redmond | Michael | Neipper |
| Seattle | Robert | Zare |
| Redmond | Laura | Giussani |
| Seattle | Anne | Hellung-Larsen |
+----------+------------+----------------+
ich zu verstehen versuchen, wie kann ich die durchschnittliche Anzahl von Menschen aus verschiedenen Städten.
bis jetzt, ich habe
mysql> select city,count(city) from employees group by city;
+----------+-------------+
| city | count(city) |
+----------+-------------+
| Bellevue | 1 |
| Kirkland | 1 |
| Redmond | 3 |
| Seattle | 4 |
+----------+-------------+
Auch habe ich
SELECT SUM(inner_count_city) from
(
SELECT city AS inner_city,
COUNT(*) AS inner_count_city
FROM employees
GROUP BY inner_city
) temp_table;
+-----------------------+
| SUM(inner_count_city) |
+-----------------------+
| 9 |
+-----------------------+
Ich kämpfe diese aufgrund der folgenden Gründe gehen nach vorne zu tun.
- Ich bin nicht in der Lage eine AVG (COUNT (Stadt)) zu tun - verkanten zwei Aggregatfunktion
- Ich bin auch nicht sicher, wie es durch die Summe der Anzahl der Städte zu teilen (= 9) .
- Nicht sicher, ob ich Unions oder Joins oder Unterabfragen verwenden sollte.
Ich versuche, von so etwas wie
- wählen Stadt, inner_count_city/sum (inner_count_city) zu tun ..
Welche DBMS sind Sie mit? – sagi