MySQL如何与其他列聚合

时间:2014-12-04 15:44:04

标签: mysql sql

如果我有这样的表:

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!=""但我很好奇是否有一个技巧可以在单个查询中执行此操作。

1 个答案:

答案 0 :(得分:0)

这是MySQL中的有效SQL。您正在将所有行聚合到一行(通过使用聚合函数SUM并且没有GROUP BY子句)。

既不是GROUP BY子句也不是聚合的任何值都是随机的。你得到的类型只是表中的一种类型;当你再次执行相同的查询时,它甚至可能是另一个。

例如,您可以使用max(type)min(type)来获取您所追求的价值。