use the average aggregate function of a count query:
SELECT AVG (sender_count)
FROM (
SELECT COUNT(sender_mail) AS sender_count
FROM event
) AS event
use the average aggregate function of a count query:
SELECT AVG (sender_count)
FROM (
SELECT COUNT(sender_mail) AS sender_count
FROM event
) AS event
Diese Funktion erfordert zwei oder mehrere Ausdrücke und liefert das erstes Argument zurück, welches von NULL verschieden ist. Ansonsten wird NULL zurückgegeben.
CoalEsce(Personen.Nachname + ', ' + Personen.Vorname, Personen.Nachname)
Die Tabelle Personen mag zwei Spalten Nachname und Vorname haben, Nachname ist ein Pflichtfeld, Vorname ist optional. Es soll, falls möglich, Nachname + Komma + Vorname ausgegeben werden. Verknüpft man die beiden Felder direkt und ist ein Feld Vorname nicht belegt, so wird die Verknüpfung zu NULL ausgewertet, also auch kein Nachname ausgegeben. Damit ist der erste Ausdruck für die CoalEsce-Funktion gleich NULL. Der zweite Ausdruck liefert jedoch einen Eintrag und wird ausgegeben.
SELECT id, order_no, title
INTO OUTFILE '/tmp/results.csv'
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM products_variants, web_products
WHERE product_id = id
Typisches Problem einer Query mit IN-Clause ist, dass die Reihenfolge der übergebenen IDs bei der Abfrage nicht beachtet wird. Z. B.: SELECT * FROM table WHERE id IN (1,3,2,4)
wird die Datensätze nach der Reihenfolge ihrer Inserts ausgeben, also wahlscheinlich in der Reihenfolge 1,2,3,4.
Lösung: SELECT * FROM table WHERE id IN (1,3,2,4) ORDER BY FIELD(id, 1,3,2,4)
Dies scheint ein undokumentiertes Feature der MySQL DB > 5 zu sein.
SELECT COUNT(CONCAT(login, ' ',password)) AS count, CONCAT(login, ' ',password)
FROM user GROUP BY CONCAT(login, ' ',password)
HAVING COUNT(CONCAT(login, ' ',password)) > 1
Task: For each invoice, find the comment or comments with the latest date.
Use an uncorrelated subquery:
SELECT pea1.*
FROM prj_expense_approval AS pea1 JOIN (
SELECT pea_pem_fk, MAX(pea_created_date) AS pea_created_date
FROM prj_expense_approval
GROUP BY pea_pem_fk) AS pea2
ON pea1.pea_pem_fk = pea2.pea_pem_fk AND pea1.pea_created_date = pea2.pea_created_date
http://dev.mysql.com/doc/refman/5.5/en/example-maximum-column-group-row.html
Task: INSERT a address with mailing ID 1134 in a mapping table
INSERT INTO adr_mailing_address_map
(amam_am_fk,amam_aa_fk) ( SELECT 1134, aa_id FROM adr_address WHERE aa_flag_isdefault = 1 )