我试图创建一个查询,其中WHERE子句只影响一个字段而不影响其他字段。
样本表:
+--------+---------+-------------+-------------+
| 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 |
+----------+----------------+
答案 0 :(得分:6)
应该只是:
select count(id) id_count, count(lang) NOT_NULL_LANG FROM TABLE_NAME;
答案 1 :(得分:0)
使用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