我有一张有5个字段的table
id=这是自动递增字段
form_id=此字段是正在填写的表单
entry\u id=这是条目的标识符
meta_key=这是特定表单字段的标识符
meta\u value=这是在表单字段中输入的值
如果我做了一个:
SELECT SUM(meta_value) FROM tbl WHERE meta_key = 55;
我得到了所有喜欢苹果的人的总数。
如果我做了一个:
SELECT SUM(meta_value) FROM tbl WHERE meta_key = 75;
我得到所有人的总数。
我试图写一个查询,让我知道%的人谁喜欢苹果的本质 ((RESULT of Q1) / (RESULT of Q2)) * 100
到目前为止,我已经研究了自连接和子查询,但我现在基本上被卡住了,因为所有关于子查询的教程都集中在 WHERE
条款。
4条答案
按热度按时间vd2z7a6w1#
为了避免被零除,我只建议:
注意,第二个
CASE
没有ELSE
. 如果没有匹配项,则返回NULL
,避免被零除。也就是说,mysql不会返回被零除的错误。它只是返回
NULL
. 但这是高度特定于数据库的行为。我认为其他数据库都会返回一个错误,您应该意识到这些潜在的问题。ycl3bljg2#
我能想到的最简单的事情是:
那对你有用吗?
vlurs2pr3#
你可以试试这个查询,它可以避免
division by zero
,以防万一total = 0
.3z6pesqy4#
可以使用条件聚合
但是,这将产生整数除法结果。所以,你可以包括
1.0
在除法之前,如果你想要精确的结果。