首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询带Datatype位的Counting列

查询带Datatype位的Counting列
EN

Stack Overflow用户
提问于 2011-05-13 18:16:02
回答 4查看 1.2K关注 0票数 1

我有一个列名检查,有一个数据类型位( true或False),我想做的是计算列中有多少false和true。

代码语言:javascript
复制
SELECT 
COUNT(FeatureState) AS tot_true, 
COUNT(*)-COUNT(FeatureState) AS tot_false
FROM productDetail
 WHERE FeatureState= 1

这是可行的

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-13 18:19:02

试试这个,应该行得通:

代码语言:javascript
复制
SELECT 
    COUNT(field) AS tot_true, 
    COUNT(*)-COUNT(field) AS tot_false
FROM table
WHERE field=1
票数 2
EN

Stack Overflow用户

发布于 2011-05-13 18:27:15

你觉得怎么样?

代码语言:javascript
复制
SELECT 
  COUNT(CASE fld WHEN 0 THEN 1 ELSE NULL END) AS ZEROS,
  COUNT(CASE fld WHEN 1 THEN 1 ELSE NULL END) AS ONES
FROM
  T

--alternative

SELECT 
  SUM(CASE fld WHEN 0 THEN 1 ELSE 0 END) AS ZEROS,
  SUM(CASE fld WHEN 1 THEN 1 ELSE 0 END) AS ONES
FROM
  T
票数 4
EN

Stack Overflow用户

发布于 2011-05-13 18:23:26

我已经使用符号将bit更改为int

代码语言:javascript
复制
SELECT 
    SUM(SIGN(field)) AS tot_true, 
    SUM(1-SIGN(field)) AS tot_false
FROM table

或者使用COUNT忽略NULL的事实

代码语言:javascript
复制
SELECT 
    COUNT(NULLIF(field, 0)) AS tot_true, 
    COUNT(NULLIF(field, 1)) AS tot_false
FROM table

如果您需要其他值MAX(SomeOtherField),其中最高值来自在其他解决方案中过滤掉的"false“行,则可以使用此方法

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5990439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档