DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 ( id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, gender CHAR(1), name VARCHAR(20) ); SELECT SUM(DISTINCT LENGTH(name)) s1 FROM t1; s1 NULL INSERT INTO t1 (gender, name) VALUES (NULL, NULL); INSERT INTO t1 (gender, name) VALUES (NULL, NULL); INSERT INTO t1 (gender, name) VALUES (NULL, NULL); SELECT SUM(DISTINCT LENGTH(name)) s1 FROM t1; s1 NULL INSERT INTO t1 (gender, name) VALUES ('F', 'Helen'), ('F', 'Anastasia'), ('F', 'Katherine'), ('F', 'Margo'), ('F', 'Magdalene'), ('F', 'Mary'); CREATE TABLE t2 SELECT name FROM t1; SELECT (SELECT SUM(DISTINCT LENGTH(name)) FROM t1) FROM t2; (SELECT SUM(DISTINCT LENGTH(name)) FROM t1) 18 18 18 18 18 18 18 18 18 DROP TABLE t2; INSERT INTO t1 (gender, name) VALUES ('F', 'Eva'), ('F', 'Sofia'), ('F', 'Sara'), ('F', 'Golda'), ('F', 'Toba'), ('F', 'Victory'), ('F', 'Faina'), ('F', 'Miriam'), ('F', 'Beki'), ('F', 'America'), ('F', 'Susan'), ('F', 'Glory'), ('F', 'Priscilla'), ('F', 'Rosmary'), ('F', 'Rose'), ('F', 'Margareth'), ('F', 'Elizabeth'), ('F', 'Meredith'), ('F', 'Julie'), ('F', 'Xenia'), ('F', 'Zena'), ('F', 'Olga'), ('F', 'Brunhilda'), ('F', 'Nataly'), ('F', 'Lara'), ('F', 'Svetlana'), ('F', 'Grethem'), ('F', 'Irene'); SELECT SUM(DISTINCT LENGTH(name)) s1, SUM(DISTINCT SUBSTRING(NAME, 1, 3)) s2, SUM(DISTINCT LENGTH(SUBSTRING(name, 1, 4))) s3 FROM t1; s1 s2 s3 42 0 7 SELECT SUM(DISTINCT LENGTH(g1.name)) s1, SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2, SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3 FROM t1 g1, t1 g2, t1 g3; s1 s2 s3 42 0 7 SELECT SUM(DISTINCT LENGTH(g1.name)) s1, SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2, SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3 FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10)); s1 s2 s3 42 0 NULL 42 0 7 42 0 4 42 0 4 42 0 4 42 0 4 42 0 4 SELECT SQL_BUFFER_RESULT SUM(DISTINCT LENGTH(name)) s1, SUM(DISTINCT SUBSTRING(NAME, 1, 3)) s2, SUM(DISTINCT LENGTH(SUBSTRING(name, 1, 4))) s3 FROM t1; s1 s2 s3 42 0 7 SELECT SQL_BUFFER_RESULT SUM(DISTINCT LENGTH(g1.name)) s1, SUM(DISTINCT SUBSTRING(g2.name, 1, 3)) s2, SUM(DISTINCT LENGTH(SUBSTRING(g3.name, 1, 4))) s3 FROM t1 g1, t1 g2, t1 g3 GROUP BY LENGTH(SUBSTRING(g3.name, 5, 10)); s1 s2 s3 42 0 NULL 42 0 7 42 0 4 42 0 4 42 0 4 42 0 4 42 0 4 SET @l=1; UPDATE t1 SET name=CONCAT(name, @l:=@l+1); Warnings: Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'. SELECT SUM(DISTINCT RIGHT(name, 1)) FROM t1; SUM(DISTINCT RIGHT(name, 1)) 45 SELECT SUM(DISTINCT id) FROM t1; SUM(DISTINCT id) 703 SELECT SUM(DISTINCT id % 11) FROM t1; SUM(DISTINCT id % 11) 55 DROP TABLE t1; BUG#37891: Column cannot be null error with aggregate in a subquery CREATE TABLE t1 ( pk int(11) NOT NULL AUTO_INCREMENT, int_key int(11) DEFAULT NULL, PRIMARY KEY (pk), KEY int_key (int_key) ); Warnings: Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. INSERT INTO t1 VALUES (1,10); CREATE TABLE t2 ( pk int(11) NOT NULL AUTO_INCREMENT, time_nokey time DEFAULT NULL, datetime_key time DEFAULT NULL, PRIMARY KEY (pk), KEY datetime_key (datetime_key) ); Warnings: Warning 1681 Integer display width is deprecated and will be removed in a future release. INSERT INTO t2 VALUES (1,'18:19:29',NOW()); SELECT * FROM t1 WHERE int_key IN ( SELECT SUM(DISTINCT pk) FROM t2 WHERE time_nokey = datetime_key ); pk int_key SELECT * FROM t1 WHERE int_key IN ( SELECT AVG(DISTINCT pk) FROM t2 WHERE time_nokey = datetime_key ); pk int_key drop table t1,t2;