如果我有这样的表:
Name Type Val
Mike A 1
John A 4
Jerry 6
(请注意,Jerry有一个Type
的空字符串)
我做了一个像
这样的查询Select sum(Val), Type from table
MySQL如何选择将Type
放入一行结果中?如果我想要退回"非空白"
为了给出一些上下文,这个表中每一行的Type实际上应该是相同的,但是曾经有一个bug现在有些值是空白的。 (注意,总和应该仍然包括空白)
我知道我可以在两个查询中执行此操作,只是select Type from table where Type!=""
但我很好奇是否有一个技巧可以在单个查询中执行此操作。
答案 0 :(得分:0)
这是MySQL中的有效SQL。您正在将所有行聚合到一行(通过使用聚合函数SUM并且没有GROUP BY子句)。
既不是GROUP BY子句也不是聚合的任何值都是随机的。你得到的类型只是表中的一种类型;当你再次执行相同的查询时,它甚至可能是另一个。
例如,您可以使用max(type)
或min(type)
来获取您所追求的价值。