当我运行以下查询时,我得到以下结果。
我不明白为什么我没有从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的回答,我得到以下结果: 看,我需要将行标签分组,但它们没有被分组。将计数置于案件之外有所帮助。 我编辑了查询以获得想法,查询比我在这里提出的要复杂得多
答案 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;