首页
学习
活动
专区
圈层
工具
发布

SQL---count()函数结果为null时替换为0

在sql中,做count()统计时,如果结果为null,这条数据是不显示的,但是经常会有类似的需求,比如:统计江西省下的某11个市的企业数量,如果有些城市企业数量为0,会发现最后返回的结果不到11条...现在需要统计:江西商务厅下的所有的公司数量,按照city排序,sql很简单,如下: SELECT city, COUNT(*) AS count FROM entInfo WHERE department...吉安市', '宜春市', '抚州市', '上饶市' ) GROUP BY city 此时会得到如下结果,会发现,本来有11个市,但查询结果里面仅有8条数据,因为有三个市是没有数据的,查询结果为null...这个sql可以这么写: SELECT t.city,count(h.id) as count from ( SELECT '南昌市' city UNION SELECT '景德镇市' city UNION

6.8K20

你真的会玩SQL吗?透视转换的艺术

Case也疯狂 你真的会玩SQL吗?表表达式,排名函数 你真的会玩SQL吗?简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合 你真的会玩SQL吗?透视转换的艺术 你真的会玩SQL吗?...玩爆你的数据报表之存储过程编写(下) 透视转换是一种行列互转的技术,在转过程中可能执行聚合操作,应用非常广泛。 本章与 你真的会玩SQL吗?数据聚合 内容比较重要,还涉及到 你真的会玩SQL吗?...但是这样查询我们希望把数据旋转为每个属性占一列的传统方式,然后再保存到临时表中处理后续查询称之为透视转换技术。在这里需要回看一下 你真的会玩SQL吗?...attr5' THEN VALUE END) AS attr5 FROM OpenSchema GROUP BY objectid 这里也可以用PIVOT,不过PIVOT不支持动态透视转换...王五 0 0 90 0 0 张三 90 85 0 80 0

2.7K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    5分钟学会SQL SERVER PIVOT操作

    PIVOT和UNPIVOT PIVOT 通过将表达式中的一个列的唯一值转换为输出中的多列(即行转列),来轮替表值表达式。PIVOT 在需要对最终输出所需的所有剩余列值执行聚合时运行聚合。...与 PIVOT 执行的操作相反,UNPIVOT 将表值表达式的列轮换为行(即列转行)。 但是需要注意得是,UNPIVOT 并不完全是 PIVOT 的逆操作。...[最后一个透视的列]) ) AS 透视表的别名> ; 实例的数据使用的是和 SQL笔试50题同样的数据, 使用的平台是SQLFIDDLE(提供在线数据库),鉴于近期全球病情的影响...然后将这张结果表里的数据UNPIVOT回去。...本文项目地址: https://github.com/firewang/sql50 (喜欢的话,Star一下) 阅读原文,或者访问该链接可以在线观看(该系列将更新至GitHub,并且托管到read the

    9.5K20

    国产数据库逆袭:老邓的“六大不敢替”被金仓逐一破解

    应用软件 SQL、PL/SQL 零修改,如果不兼容,这家公司的数据库反向兼容,这就是底气。 都有哪些“姿势”呢?...这套测试工具的工作方式很直接也很聪明↓ 从原O记系统中捕获完整业务负载(包括SQL语句、事务、执行顺序等)将这些业务流量一比一“重放”到自家数据库上; 自动对比执行效果与性能表现,生成分析报告,提前发现潜在问题...③ 含有 CONNECT BY 的层级查询 sql SELECT empno, ename, level FROM emp START WITH mgr IS NULL CONNECT BY PRIOR...一句话总结 以上三段代码分别覆盖了 存储过程批处理、触发器+序列、层级查询 三大高频场景;借助 KingbaseES 的 PL/SQL 100% 兼容引擎,老邓们最担心的“改代码”工作量被压到了 0。...、动态 SQL 等特性,使得存量业务脚本无需任何改写即可直接运行。

    76821

    8个Python高效数据分析的技巧。

    Lambda表达式用于在Python中创建小型,一次性和匿名函数对象, 它能替你创建一个函数。 lambda表达式的基本语法是: lambda arguments: expression 注意!...list()函数只是将输出转换为列表类型) # Map seq = [1, 2, 3, 4, 5] result = list(map(lambda var: var*2, seq)) print(result...我们用删除一列(行)的例子: df.drop('Column A', axis=1) df.drop('Row A', axis=0) 如果你想处理列,将Axis设置为1,如果你想要处理行,将其设置为0...如果你想在Python中对其进行索引,则行数下标为0,列数下标为1,这很像我们如何声明轴值。 6 Concat,Merge和Join 如果您熟悉SQL,那么这些概念对你来说可能会更容易。...(np.sum, axis=1) 0 13 1 13 2 13 8 Pivot Tables 如果您熟悉Microsoft Excel,那么你也许听说过数据透视表。

    3.4K10

    8 个 Python 高效数据分析的技巧

    它能替你创建一个函数。 lambda表达式的基本语法是: lambda arguments: expression 请注意,只要有一个lambda表达式,就可以完成常规函数可以执行的任何操作。...具体来说,map通过对列表中每个元素执行某种操作并将其转换为新列表。在本例中,它遍历每个元素并乘以2,构成新列表。请注意,list()函数只是将输出转换为列表类型。...我们用删除一列(行)的例子: df.drop( Column A , axis=1) df.drop( Row A , axis=0) 如果你想处理列,将Axis设置为1,如果你想要处理行,将其设置为0...如果你想在Python中对其进行索引,则行数下标为0,列数下标为1,这很像我们如何声明轴值。 Concat,Merge和Join 如果您熟悉SQL,那么这些概念对您来说可能会更容易。...如果您熟悉Microsoft Excel,那么你也许听说过数据透视表。

    3.9K20

    SQL函数 CAST

    当数字值被转换为日期或时间数据类型时,它在SQL中显示为0 (0); 但是,当将数字转换为日期或时间时,从嵌入式SQL传递到ObjectScript,它显示为相应的$HOROLOG值。...当字符串被转换为数字类型时,它总是返回一个数字零(0)。 转换为DATE、TIME和TIMESTAMP 可以将字符串强制转换为DATE、TIME或TIMESTAMP数据类型。...转换NULL和空字符串 NULL可以转换为任何数据类型并返回NULL。 空字符串(")的类型转换如下: 所有字符数据类型返回NULL。 所有数字数据类型都返回0(零),以及尾随分数零的适当数量。...下面的动态SQL示例将DATE数据类型字段转换为TIMESTAMP和POSIXTIME: ClassMethod Cast() { s myquery = 2 s myquery(1)...下面的动态SQL示例将TIMESTAMP数据类型字段转换为DATE和POSIXTIME: ClassMethod Cast1() { s myquery = 2 s myquery(1)

    6.3K30

    这 8 个 Python 技巧让你的数据分析提升数倍!

    它能替你创建一个函数。 lambda表达式的基本语法是: lambda arguments: expression 请注意,只要有一个lambda表达式,就可以完成常规函数可以执行的任何操作。...具体来说,map通过对列表中每个元素执行某种操作并将其转换为新列表。在本例中,它遍历每个元素并乘以2,构成新列表。请注意,list()函数只是将输出转换为列表类型。...我们用删除一列(行)的例子: df.drop( Column A , axis=1) df.drop( Row A , axis=0) 如果你想处理列,将Axis设置为1,如果你想要处理行,将其设置为0...Concat,Merge和Join ---- ---- 如果您熟悉SQL,那么这些概念对您来说可能会更容易。无论如何,这些函数本质上就是以特定方式组合DataFrame的方式。...如果您熟悉Microsoft Excel,那么你也许听说过数据透视表。

    3K10

    使用Spark轻松做数据透视(Pivot)

    大家无论在使用pandas、numpy或是R的时候,首先会做的就是处理数据,尤其是将列表,转成成合适的形状。...1000.0|2000.0| 0.0| 0.0| |2018-03| 0.0| 0.0| 0.0|999.0| +-------+------+------+-----+-----+ 上面的表,是将列表进行重排后的透视表...就好像,将话费清单,做成透视表,尽管逻辑上没有任何问题,但是结果是可能比现在的清单列表更难查阅。 PS:一些可以借鉴的名词,目前维基百科并没有收录,也只能权且理解一下吧 ?....show(); 可以看到,这里我们将读取的csv注册成了表f,使用spark sql语句,这里和oracle的透视语句类似 pivot语法: pivot( 聚合列 for 待转换列 in (列值)...为了展示数据好看一点,我特意使用语句 r.na().fill(0) 将空值`null`替换成了0。

    3.9K20

    SQL、Pandas和Spark:如何实现数据透视表?

    理解了数据透视表的这一核心功能,对于我们下面介绍数据透视表在三大工具中的适用将非常有帮助!...(0和1),都是按照字典序排序的结果,这也呼应了Excel中关于数据透视表的介绍。...04 SQL中实现数据透视表 这一系列的文章中,一般都是将SQL排在首位进行介绍,但本文在介绍数据透视表时有意将其在SQL中的操作放在最后,这是因为在SQL中实现数据透视表是相对最为复杂的。...上述SQL语句中,仅对sex字段进行groupby操作,而后在执行count(name)聚合统计时,由直接count聚合调整为两个count条件聚合,即: 如果survived字段=0,则对name计数...,否则不计数(此处设置为null,因为count计数时会忽略null值),得到的结果记为survived=0的个数; 如果survived字段=1,则对name计数,否则不计数,此时得到的结果记为survived

    4.9K30

    SQL server 2005 PIVOT运算符的使用

    本文主要介绍PIVOT运算符的操作,以及如何实现动态PIVOT的行列转换。        关于UNPIVOT及SQL server 2000下的行列转换请参照本人的其它文章。...静态PIVOT的用法        为演示,从NorthWind数据库中提取一些记录生成新的Orders表,然后使用PIVOT将行转换到列。...Year是透视列,用于生成维度。 pivot首先将聚合列之外的列进行分组,并对其实现聚合。...动态PIVOT的使用 USE AdventureWorks; GO --第一种生成透视列的方法,使用了COALESCE来联接字符串 DECLARE @PivotColHeader VARCHAR(...且将[Year]转换为字符串,因为YEAR(H.OrderDate)得值为 INT ,而''GrandTotal''为字符串,UNION 或UNION ALL使用时必须列的数量和类型相对应。

    2.7K20

    SQL函数 TRUNCATE

    它不对数字进行四舍五入,也不添加填充零。在截断操作之前,将删除前导零和尾随零。如果小数位数为正数,则在小数点右侧的位数处执行截断。如果小数位数等于或大于小数位数,则不会发生截断或零填充。...如果小数位数等于或大于数字中的整数位数,则返回零。如果NUMERIC-EXPR为零(但表示为00.00、-0等)。TRUNCATE返回0(零),不带小数位数,无论小数位数是多少。...第一个(使用动态 SQL)将比例指定为整数;第二个(使用嵌入式 SQL)将 scale 指定为解析为整数的主变量:/// d ##class(PHA.TEST.SQLFunction).Truncate...以下动态 SQL 示例指定零比例:/// d ##class(PHA.TEST.SQLFunction).Truncate3()ClassMethod Truncate3(){ s myquery...()}DHC-APP>d ##class(PHA.TEST.SQLFunction).Truncate4()trunc600 1 Rows(s) Affected它返回 600(两个整数位已被截断并替换为零

    2.2K10

    建议收藏丨sql行转列的一千种写法!!

    group by 学生号   case when进阶,动态列数行转列: 但是,转换后列数不固定的情况下呢?对照上面的例子来说就是,假设我并不知道学生学了哪些科目的时候应该怎么做?...我们继续用case when,但是由于列的不固定,需要先根据条件分支产生的可能性来拼接一下语句再动态执行。...此处介绍两种方法法一,通过自定义列,添加辅助列法二,通过重复列,实现添加辅助列 第三步,进行透视列。【透视列】>【值列,自定义,选中需要透视的列】-【聚合值函数,选择不要聚合】-【确定】。...convert(StudentGrandList); //打印转换后的集合,查看结果 print(convertedTable); //剩下的可以根据实际需求,将转换好的集合传给前端...NO EXTERNAL DATA PARAMETER STYLE SQL NOT DETERMINISTIC CALLED ON NULL INPUT EXTERNAL NAME 'SL!

    2.1K30
    领券