Oracle SQL - GROUP BY无法正常工作

时间:2014-07-16 20:26:09

标签: sql oracle

当我运行以下查询时,我得到以下结果。

我不明白为什么我没有从GROUP BY获得预期的结果。

我该如何解决这个问题,以便得到预期的结果?

SELECT
  status AS "ROW LABELS",
  (case when order = 'INTERNET' THEN COUNT(*) end) AS "INTERNET"
FROM
    order
    ,status
WHERE  order       =   status
GROUP BY status, order_source
order by 1;

数据在这里 https://drive.google.com/file/d/0BzWMxMDCgXFaSk5TTWV2SEEzTFU/edit?usp=sharing 我无法在这里很好地格式化数据。

根据Dnoeth的回答,我得到以下结果: enter image description here 看,我需要将行标签分组,但它们没有被分组。将计数置于案件之外有所帮助。 我编辑了查询以获得想法,查询比我在这里提出的要复杂得多

1 个答案:

答案 0 :(得分:1)

假设您有一些拼写错误(order而不是order_source),您需要在COUNT中移动CASE:

SELECT
  status AS "ROW LABELS",
  COUNT(case when order_source = 'INTERNET' THEN 1 end) AS "INTERNET"
FROM
    order
    ,status
WHERE  order       =   status
GROUP BY status
order by 1;