【问题标题】:SQL Query: Get the percentage of row with TEXT typeSQL 查询:获取 TEXT 类型行的百分比
【发布时间】:2022-12-05 20:44:04
【问题描述】:

我正在尝试计算值为空时行事件的百分比。 我有一个包含 2 行的表(邮政编码、事件)。

TABLE weather
  events TEXT
  zip_code INTEGER

这是我写的查询。我只是获取每个 zip_code 为空的所有事件的计数:

SELECT zip_code, COUNT(*) AS percentage
FROM weather
WHERE events IS NULL
GROUP BY zip_code, events;

这是我的输出:

zip_code percentage
94041        639
94063        639
94107        574
94301        653
95113        638

我想将它转换成百分比,但我不知道如何获得事件总数,所以我可以做这样的事情 COUNT(the events that are null)*100/COUNT(ALL)。

【问题讨论】:

  • count(*) over()

标签: mysql sql


【解决方案1】:
CREATE table #tblNulls 
(
    zip_code INTEGER,
    Nullcount integer
)

CREATE TABLE #tblAll
(
    zip_code INTEGER,
    Allcount integer
)

INSERT INTO #tblNulls
SELECT zip_code, COUNT(*) AS Nullcount 
FROM weather
WHERE events IS NULL
GROUP BY zip_code, events;


INSERT INTO #tblAll
SELECT zip_code, COUNT(*) AS Allcount 
FROM weather
GROUP BY zip_code, events;


SELECT a.zip_code, a.Allcount,n.Nullcount , n.Nullcount/a.Allcount
FROM #tblAll a
LEFT JOIN #tblNulls n ON a.zip_code = n.zip_code

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多