首页 > 解决方案 > from 子句中可以有两个子查询吗?

问题描述

我正在编写这个查询,它必须从同一个表中计算两种类型的数据,但具有不同的属性。

我已经尝试在子查询之间添加“AND”和“,”,但它不能以这些方式工作。

SELECT COUNT(sb1.prop) AS PROP1, COUNT(sb2.prop) AS PROP2
FROM (SELECT * FROM TABLE t WHERE t.prop LIKE '%SOMETHING%') AS sb1
      AND/,/WHATEVER WORKS
     (SELECT * FROM TABLE t WHERE t.prop LIKE '%SOMETHING ELSE%') AS sb2

我需要计算有多少条记录具有像SOMETHINGSOMETHING ELSE这样的道具,如何在单个查询 from 子句中使用两个子查询来做到这一点?我有类似“算术溢出错误将表达式转换为数据类型数字”之类的错误

标签: sqlsql-serversubquery

解决方案


我认为您可以在这里使用条件聚合:

select
    sum(case when prop like '%SOMETHING%' then 1 end) sb1,
    sum(case when prop like '%SOMETHING ELSE%' then 1 end) sb2
from mytable

注意:使用此当前设置,匹配的'%SOMETHING%'内容将在每个中计算一次sum()(但我只能想象这是假设的数据和过滤器)。


推荐阅读