查找在单个SQL查询中验证条件的行比例

卡米列里

假设我有一个sales如下表:

ID    |      Price  
----------------------
1              0.33                
2              1.5               
3              0.5                
4              10                
5              0.99    

我想在一个查询中找到验证给定条件的行的比例。例如,如果条件为Price < 1,则结果应为3/5 = 0.6。

到目前为止,我发现的唯一解决方法是:

SELECT
    SUM(
        CASE
            WHEN Price < 1
            THEN 1 
            WHEN Price >= 1
            THEN 0
            END
          )/COUNT(*)
FROM sales

但是有没有办法做到这一点CASE

阿尔玛·杜(Alma Do)

您可以使用IF

SELECT SUM(IF(Price < 1, 1, 0))/COUNT(*) FROM sales

-但与CASE(您的逻辑是正确的)没有太大区别

您可能要使用WHERE(仅合计价格<1)-但由于您使用的是总数COUNT,因此在您的情况下无效。另一种选择:分别获取总计数:

SELECT 
  COUNT(sales.Price)/total_count
FROM
  sales
    CROSS JOIN (SELECT COUNt(*) AS total_count FROM sales) AS c
WHERE
-- you're summing 1 or 0 depending of Price, so your sum is 
-- just count where Price<1
  sales.Price<1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找在单个SQL查询中验证条件的行比例

来自分类Dev

SQL中的单个条件选择查询

来自分类Dev

按多个列和行条件查找SQL查询

来自分类Dev

CakePHP查找条件未出现在SQL查询中

来自分类Dev

SQL查询条件行

来自分类Dev

在单个条件中使用多个 AND 的 Sql 查询

来自分类Dev

SQL 查询中的条件

来自分类Dev

SQL查询在相关行中查找列的总和

来自分类Dev

通过多个条件在SQL Server中查找重复的行

来自分类Dev

在 SQL Server 中查找与条件匹配的最近行

来自分类Dev

如何根据sql中组内的条件查找行?

来自分类Dev

SQL从具有特定条件的重复项中查找单个值

来自分类Dev

查询以在单个查询中查找各种组合搜索和计数

来自分类Dev

从SQL查询中查找序列

来自分类Dev

单个SQL查询可基于同一表中的2个条件获取计数

来自分类Dev

单个sql查询中相同字段的相等,不相等条件

来自分类Dev

单个 sql 查询中条件的最小值和最大值

来自分类Dev

Grails中的动态查找器与条件查询

来自分类Dev

SQL查询使用单个输入框查找用户

来自分类Dev

从SQL中的两个查询创建比例

来自分类Dev

SQL查询以在表和指定条件之间的列列表中查找公共项目?

来自分类Dev

如果条件匹配,则查找列中字段总和的 SQL 查询,否则返回默认值

来自分类Dev

sql查询中的条件所在

来自分类Dev

在SQL查询中添加条件

来自分类Dev

Hibernate中的条件SQL查询

来自分类Dev

在SQL查询中应用if条件

来自分类Dev

在SQL查询中编写条件

来自分类Dev

SQL查询单个表中的更新

来自分类Dev

单个查询中的SQL Server表组合