【发布时间】:2022-10-13 14:57:55
【问题描述】:
SELECT dev_block,
CASE WHEN problem_type = 'Relating to Cultivation' THEN COUNT(dev_block) ELSE 0 END AS RelatingtoCultivation,
CASE WHEN problem_type = 'Relating to storage' THEN COUNT(dev_block) ELSE 0 END AS Relatingtostorage,
CASE WHEN problem_type = 'Relating to transport' THEN COUNT(dev_block) ELSE 0 END AS Relatingtotransport,
CASE WHEN problem_type = 'Relating to marketing' THEN COUNT(dev_block) ELSE 0 END AS Relatingtomarketing,
CASE WHEN problem_type = 'Others' THEN COUNT(dev_block) ELSE 0 END AS OTHERS,
CASE WHEN problem_type = '' THEN COUNT(dev_block) ELSE 0 END AS NoProblem
FROM (SELECT a.dev_block, b.problem_type FROM hd_survey_head a JOIN hd_survey_horti_problems b ON a.survey_id = b.survey_id
WHERE b.problem_head = 'Major Problems being faced for Fruit Crops' AND district = 'SHIMLA') AS z
GROUP BY dev_block
dev_block RelatingtoCultivation Relatingtostorage Relatingtotransport Relatingtomarketing Others NoProblem
-------------- --------------------- ----------------- ------------------- ------------------- ------ -----------
BASANTPUR 0 0 0 19209 0 0
CHAUHARA 11317 0 0 0 0 0
CHAUPAL 121086 0 0 0 0 0
JUBBAL KOTKHAI 94635 0 0 0 0 0
KUPVI 0 0 0 6491 0 0
MASHOBRA 23572 0 0 0 0 0
NANKHARI 28695 0 0 0 0 0
NARKANDA 41885 0 0 0 0 0
RAMPUR 67094 0 0 0 0 0
ROHRU 55563 0 0 0 0 0
THEOG 51964 0 0 0 0 0
TOTU 34950 0 0 0 0 0
上面的查询给了我这个错误的输出,它只在一列中计算所有我想要做的是计算嵌套查询中的问题并将其显示在列中。
dev_block problem_type
--------- -------------------------
RAMPUR Relating to Cultivation
RAMPUR Relating to Cultivation
RAMPUR Relating to Cultivation
RAMPUR Relating to Cultivation
RAMPUR Relating to storage
RAMPUR Relating to storage
RAMPUR Relating to transport
RAMPUR Relating to transport
RAMPUR Relating to marketing
RAMPUR Relating to marketing
RAMPUR Relating to marketing
如您所见,上述数据是嵌套查询的结果拉姆普尔块有问题与营销有关,与运输有关和与存储有关也一样,但它很重要关于修炼在上面的查询中
【问题讨论】:
-
'它只在一列中计算' - 真的 - 与营销相关的列也有值?
-
是的,但是当我看到嵌套查询时,会出现类似的问题与存储有关和与运输有关在每个块中,但查询将其全部计算在一列中。