SQL使用GROUP BY使其产生原始SELECT

时间:2009-10-21 10:31:31

标签: sql aggregate

我有一个类似

的SQL查询
SELECT SUM(price) FROM budget GROUP BY {{PLACEHOLDER}}

其中{{PLACEHOLDER}}将在代码中被替换。是否可以用与以下语句相同的输出替换它?

SELECT price FROM budget

4 个答案:

答案 0 :(得分:5)

如果您有一个唯一的列,例如自动生成的ID,则可以使用

SELECT SUM(price) FROM budget GROUP BY budget_id

将等于

SELECT price FROM budget

如果每一行都有不同的budget_id (身份,自动增量字段符合条款)

现在,我敦促你重新考虑做这种黑客行为的智慧,为什么不把它放在哪里呢?

答案 1 :(得分:1)

...GROUP BY NEWID()

每行随机,因此永远不会聚合。并分为关键列,架构等

答案 2 :(得分:0)

我的建议是,当且仅当占位符存在时,才将GROUP BY直接包含在占位符中:

if (!empty($placeholder)) {
    $placeholder = 'GROUP BY ' . $placeholder;
}

答案 3 :(得分:0)

如果我理解正确,您希望通过有效省略该组。 在这种情况下,请将其设为GROUP BY ROW_ID 这将产生相同的结果