Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询技术。我完全同意,但代码是如此有意,似乎它有一个目的。一个神秘的目的。@AustinMoore。我会采取更保守的方法,不会改变这个问题。您可以编辑问题并指出,jointob是不必要的,但是如果您完全删除它,那么所有的答案看起来都会误导您。COALESC_Sql_Oracle_Join_Count_Subquery - Fatal编程技术网

Sql 查询技术。我完全同意,但代码是如此有意,似乎它有一个目的。一个神秘的目的。@AustinMoore。我会采取更保守的方法,不会改变这个问题。您可以编辑问题并指出,jointob是不必要的,但是如果您完全删除它,那么所有的答案看起来都会误导您。COALESC

Sql 查询技术。我完全同意,但代码是如此有意,似乎它有一个目的。一个神秘的目的。@AustinMoore。我会采取更保守的方法,不会改变这个问题。您可以编辑问题并指出,jointob是不必要的,但是如果您完全删除它,那么所有的答案看起来都会误导您。COALESC,sql,oracle,join,count,subquery,Sql,Oracle,Join,Count,Subquery,查询技术。我完全同意,但代码是如此有意,似乎它有一个目的。一个神秘的目的。@AustinMoore。我会采取更保守的方法,不会改变这个问题。您可以编辑问题并指出,jointob是不必要的,但是如果您完全删除它,那么所有的答案看起来都会误导您。COALESCE()在按照您的建议实施时似乎不起作用。我仍然缺少计数为0的类型。COALESCE在这种情况下没有帮助,除非count在子查询b中。使用原始查询中的COUNT,它将永远不会返回NULL,因此合并将不会产生任何效果COUNT列上的所有空值仍将返回



查询技术。我完全同意,但代码是如此有意,似乎它有一个目的。一个神秘的目的。@AustinMoore。我会采取更保守的方法,不会改变这个问题。您可以编辑问题并指出,
join
to
b
是不必要的,但是如果您完全删除它,那么所有的答案看起来都会误导您。
COALESCE()
在按照您的建议实施时似乎不起作用。我仍然缺少计数为0的类型。
COALESCE
在这种情况下没有帮助,除非
count
在子查询
b
中。使用原始查询中的
COUNT
,它将永远不会返回NULL,因此
合并将不会产生任何效果
COUNT
列上的所有空值仍将返回0。没错,我忽略了这一点。我很确定我现在已经解决了这个问题。
COALESCE()
在按照您的建议实现时似乎不起作用。我仍然缺少计数为0的类型。
COALESCE
在这种情况下没有帮助,除非
count
在子查询
b
中。使用原始查询中的
COUNT
,它将永远不会返回NULL,因此
合并将不会产生任何效果
COUNT
列上的所有空值仍将返回0。没错,我忽略了这一点。我很确定我现在已经解决了这个问题。
COALESCE()
在按照您的建议实现时似乎不起作用。我仍然缺少计数为0的类型。
COALESCE
在这种情况下没有帮助,除非
count
在子查询
b
中。使用原始查询中的
COUNT
,它将永远不会返回NULL,因此
合并将不会产生任何效果
COUNT
列上的所有空值仍将返回0。没错,我忽略了这一点。我很确定我现在已经解决了这个问题。
COALESCE()
在按照您的建议实现时似乎不起作用。我仍然缺少计数为0的类型。
COALESCE
在这种情况下没有帮助,除非
count
在子查询
b
中。使用原始查询中的
COUNT
,它将永远不会返回NULL,因此
合并将不会产生任何效果
COUNT
列上的所有空值仍将返回0。没错,我忽略了这一点。我很确定我现在已经修好了。谢谢!你的回答也解决了我的问题。这与@GordonLinoff的答案类似。不过,由于戈登解释了问题和解决方案,我将选择他的答案作为正确答案。谢谢!你的回答也解决了我的问题。这与@GordonLinoff的答案类似。不过,由于戈登解释了问题和解决方案,我将选择他的答案作为正确答案。谢谢!你的回答也解决了我的问题。这与@GordonLinoff的答案类似。不过,由于戈登解释了问题和解决方案,我将选择他的答案作为正确答案。谢谢!你的回答也解决了我的问题。这与@GordonLinoff的答案类似。然而,由于戈登解释了问题和解决方案,我将选择他的作为正确答案。
TYPE   COUNT(DEVICE.NAME)
TYPE1                 200
TYPE2                 100
TYPE3                  50
TYPE   COUNT(DEVICE.NAME)
TYPE1                 200
TYPE2                 100
TYPE3                  50
TYPE4                   0
TYPE5                   0
SELECT device.type, count(device.name)
FROM device
LEFT OUTER JOIN (SELECT type, name
                  FROM device) b
  ON device.name = b.name
WHERE device.changedon < (((SYSDATE - DATE '1970-01-01') * 24 * 60 * 60) - (90 * 24 * 60 * 60))
  AND device.status != 6 AND device.status != 8 AND device.status != 13
GROUP BY device.type
ORDER BY count(device.name) DESC;
SELECT d0.type, COALESCE(d.cnt,0) FROM device d0
LEFT OUTER JOIN (
  SELECT device.type, count(device.name) AS cnt
  FROM device
  LEFT OUTER JOIN (SELECT type, name
                    FROM device) b
    ON device.name = b.name
  WHERE device.changedon < (((SYSDATE - DATE '1970-01-01') * 24 * 60 * 60) - (90 * 24 * 60 * 60))
  AND device.status != 6 AND device.status != 8 AND device.status != 13
  GROUP BY device.type) d
ORDER BY COALESCE(d.cnt,0) DESC;
SELECT d.type, count(h471.id)
FROM device d INNER JOIN
     (SELECT type, name
      FROM device
     ) b
     ON d.name = b.name
WHERE d.changedon < (((SYSDATE - DATE '1970-01-01') * 24 * 60 * 60) - (90 * 24 * 60 * 60)) and
      d.status != 6 AND d.status != 8 AND d.status != 13
GROUP BY d.type;
SELECT d.type,
       sum(case when d.changedon < (((SYSDATE - DATE '1970-01-01') * 24 * 60 * 60) - (90 * 24 * 60 * 60)) and
                       d.status != 6 AND d.status != 8 AND d.status != 13
                  then 1 else 0
            end)
FROM device d LEFT OUTER JOIN
     (SELECT type, name
      FROM device
     ) b
     ON d.name = b.name 
GROUP BY d.type;
SELECT type, SUM(COUNT_RESULT)
  FROM (

          SELECT device.type, 0 COUNT_RESULT
          FROM device

          UNION ALL

          SELECT device.type, count(1)
          FROM device, h471
          WHERE device.recnum = h471.id
            AND device.changedon < (((SYSDATE - DATE '1970-01-01') * 24 * 60 * 60) - (90 * 24 * 60 * 60))
            AND device.status != 6 AND device.status != 8 AND device.status != 13

)        
GROUP BY type