一个字段上的 WHERE 子句
WHERE clause on one field
我正在尝试创建一个查询,其中 WHERE 子句只影响一个字段而不影响其他字段。
样本Table:
+--------+---------+-------------+-------------+
| ID | Name | COUNTRY | LANG |
+--------+---------+-------------+-------------+
| 1 | Sami | UK | English |
| 2 | James | Spain | NULL |
| 3 | John | USA | English |
| 4 | Alex | Greece | NULL |
| 5 | Jane | Italy | Italian |
+--------+---------+-------------+-------------+
我想创建一个查询,其中所有
1) 所有 ID 的计数
2) LANG IS NOT NULL
中所有 ID 的计数
期望的结果:
ID_Count
+----------+----------------+
| ID_COUNT | NOT_NULL_LANG |
+----------+----------------+
| 5 | 3 |
+----------+----------------+
应该只是:
select count(id) id_count, count(lang) NOT_NULL_LANG FROM TABLE_NAME;
- COUNT() 函数与大多数 SQL 聚合函数一样,从计算中排除 NULL
使用 COUNT
、ISNULL
和 SUM
函数。
SELECT COUNT(ID) AS ID_COUNT,
COUNT(ID)-SUM(IFNULL(LANG, 1)) AS NOT_NULL_LANG
FROM yourtable
输出
ID_COUNT NOT_NULL_LANG
5 3
SQL Fiddle: http://sqlfiddle.com/#!9/458c9/6/0
我正在尝试创建一个查询,其中 WHERE 子句只影响一个字段而不影响其他字段。
样本Table:
+--------+---------+-------------+-------------+
| ID | Name | COUNTRY | LANG |
+--------+---------+-------------+-------------+
| 1 | Sami | UK | English |
| 2 | James | Spain | NULL |
| 3 | John | USA | English |
| 4 | Alex | Greece | NULL |
| 5 | Jane | Italy | Italian |
+--------+---------+-------------+-------------+
我想创建一个查询,其中所有
1) 所有 ID 的计数
2) LANG IS NOT NULL
期望的结果:
ID_Count
+----------+----------------+
| ID_COUNT | NOT_NULL_LANG |
+----------+----------------+
| 5 | 3 |
+----------+----------------+
应该只是:
select count(id) id_count, count(lang) NOT_NULL_LANG FROM TABLE_NAME;
- COUNT() 函数与大多数 SQL 聚合函数一样,从计算中排除 NULL
使用 COUNT
、ISNULL
和 SUM
函数。
SELECT COUNT(ID) AS ID_COUNT,
COUNT(ID)-SUM(IFNULL(LANG, 1)) AS NOT_NULL_LANG
FROM yourtable
输出
ID_COUNT NOT_NULL_LANG
5 3
SQL Fiddle: http://sqlfiddle.com/#!9/458c9/6/0