sql - SQL max 函数返回 NULL 值
问题描述
我试图获得每个州的最低、最高和平均家庭收入中位数。虽然我得到了最低和平均收入。最大值都返回NULL。这是我的代码,
SELECT
Statecode,
MIN(Median_household_income) 'Minimum income',
MAX(Median_household_income) 'Maximum Income',
AVG(Median_household_income) 'Average Income'
FROM census
GROUP BY Statecode;
如何解决这个问题?
解决方案
Median_household_income
实际上,您的表包含带有字符串文字的列中的值,'NULL'
而不是NULL
.
正如SQLite 版本 3 中的数据类型中所解释的那样
INTEGER 或 REAL 值小于任何 TEXT 或 BLOB 值
所以你得到最小的整数值,因为它小于'NULL'
但你得到的最大值,'NULL'
而不是 NULL
结果。
用这个语句删除它们(因为我猜你不想要它们):
UPDATE census
SET Median_household_income = NULL
WHERE Median_household_income = 'NULL'
并且查询将正常工作。
请参阅演示。
结果:
| Statecode | Minimum income | Maximum Income | Average Income |
| --------- | -------------- | -------------- | -------------- |
| MA | 2499 | 83273 | 57358 |
| PR | 6989 | 66063 | 19598.656 |
推荐阅读
- c# - 产生所需数量的预制件
- laravel - 无法在 Laravel 6.0 中使用 Composer 安装软件包
- javascript - 如何将用户在搜索栏中输入的歌曲名称发送到 api
- powershell - 如何在 Windows 2019 中为 FTP 服务器设置 SSL 为无 ssl
- c++ - C++ 杀死一个 std::thread
- azure - 在 App Insights 门户中查看时,App Insights GetMetric("name").TrackValue 不会聚合
- spring - 春季启动安全性要求意外授权
- python - 如果输入是浮点数,如何不计算字符串的长度?
- javascript - 如何在 android webview 上使用 mediadevices.getusermedia 运行网页
- android - 有什么方法可以简单地在 android studio 中使用 google mediapipe 框架进行手部跟踪?