【发布时间】:2019-11-30 13:25:52
【问题描述】:
我正在尝试查找在 SQL 中接收到的消息的成功率。因此,我创建了一个带有消息 ID 和操作(发送或接收)的表,然后我计算编号。收到的消息/总数的消息。这是我的代码:
CREATE TABLE msg (id INTEGER, action TEXT);
INSERT INTO msg VALUES (1, 'sent');
INSERT INTO msg VALUES (1, 'received');
INSERT INTO msg VALUES (2, 'sent');
INSERT INTO msg VALUES (2, 'received');
INSERT INTO msg VALUES (3, 'sent');
INSERT INTO msg VALUES (4, 'sent');
INSERT INTO msg VALUES (5, 'sent');
SELECT SUM(CASE WHEN action = 'received' THEN 1 ELSE 0 END)/COUNT( DISTINCT id) AS success_rate FROM msg;
这给了我 0 作为输出。为什么?
【问题讨论】:
-
(1) 用您正在使用的数据库标记您的问题。 (2)
id不是唯一的,这似乎很奇怪。
标签: sql sqldatatypes