SQL生成新字段的方法

这篇具有很好参考价值的文章主要介绍了SQL生成新字段的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、SELECT语句的 关于原字段的表达式 生成新字段,或者将字符串newvalue 赋给 新字段newcol

select col1*2 as newcol1, 'newvalue' as newcol from tablea

2、使用计算字段生成新字段,比如一些聚合函数、窗口函数、或者字段之间的计算

select count(*) as totalsum from tablea 

3、使用CASE WHEN表达式生成新字段,

case when income < 20000 then 'Low Salary'
     when income >= 20000 and income <= 50000 then 'Average Salary'
     else 'High Salary'
end as category

如果生成的新的分类字段,此时按该字段进行分组计数,如果数据表没有High Salary的数据,此时分类结果表就不会出现High Salary这个类别 

比如LEECODE1907题

表: Accounts

+-------------+------+
| 列名        | 类型  |
+-------------+------+
| account_id  | int  |
| income      | int  |
+-------------+------+
account_id 是这个表的主键。
每一行都包含一个银行帐户的月收入的信息。
 

写出一个 SQL 查询,来报告每个工资类别的银行账户数量。 工资类别如下:

"Low Salary":所有工资 严格低于 20000 美元。
"Average Salary": 包含 范围内的所有工资 [$20000, $50000] 。
"High Salary":所有工资 严格大于 50000 美元。

结果表 必须 包含所有三个类别。 如果某个类别中没有帐户,则报告 0 。

按 任意顺序 返回结果表。

查询结果格式如下示例。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/count-salary-categories
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

要想显示所有类别的记录数,对没有记录的类别的记录数显示为0,可以使用UNION文章来源地址https://www.toymoban.com/news/detail-647796.html

select 'Low Salary' as category,count(account_id) as accounts_count
from Accounts
where income < 20000
union
select 'Average Salary' as category,count(account_id) as accounts_count
from Accounts
where income between 20000 and 50000
union
select 'High Salary' as category,count(account_id) as accounts_count
from Accounts
where income > 50000

到了这里,关于SQL生成新字段的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://blog.csdn.net/weixin_45638528/article/details/130616605

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包