带有 GROUP BY 的这个 MySQL 视图的 MS 版本?

Posted

技术标签:

【中文标题】带有 GROUP BY 的这个 MySQL 视图的 MS 版本?【英文标题】:MS Version of This MySQL View with GROUP BY? 【发布时间】:2012-11-05 20:26:03 【问题描述】:

向我展示了可以轻松地从多个表中创建视图,在 xception 的精彩答案中按其中一个表的 id 进行分组:CREATE VIEW WHERE SELECTid = VIEWrowID

有没有办法在 MS 中做到这一点?我在任何地方都读过说“不”,但没有页面提供替代方案。

我不需要计数或任何东西,只需要来自多个表的多个列 GROUPed BY(?) 一个表上的单个列。

提前非常感谢!

示例

感谢您的回复。

对于视图的 SELECT:

SELECT dbo.table1.column1 AS table1column1,
       dbo.table1.column2 AS table1column2,
       dbo.table2.column1 AS table2column1,
       dbo.table2.column2 AS table2column2
FROM table1, table2
WHERE table2.column1 = table1.column1
GROUP BY table1.column1

【问题讨论】:

请提供示例数据和所需的输出。 GROUP BY 用于聚合计算,您没有执行聚合计算。为什么你认为你需要GROUP BY'? 感谢您的帮助。它与 mysql 配合得非常好,我认为 MS 有一个等价物。我不知道我需要什么,除了 table1.column1 不应该重复。 【参考方案1】:

由于 MySQL 只是从未分组的列中选择一个随机值,因此应该执行以下操作:

SELECT dbo.table1.column1 AS table1column1,
       min(dbo.table1.column2) AS table1column2,
       min(dbo.table2.column1) AS table2column1,
       min(dbo.table2.column2) AS table2column2
FROM table1, table2
WHERE table2.column1 = table1.column1
GROUP BY table1.column1

我强烈建议您阅读这篇博文 http://rpbouman.blogspot.de/2007/05/debunking-group-by-myths.html 以了解 MySQL 在做什么(错误)

【讨论】:

以上是关于带有 GROUP BY 的这个 MySQL 视图的 MS 版本?的主要内容,如果未能解决你的问题,请参考以下文章

mysql group by,两个条件,限制1

MySQL:带有 ORDER BY COUNT 的 GROUP_CONCAT?

mysql使用带有子查询的临时表,但不是group by和order by

使用 group_by 的 MySql 视图非常慢

如何在mysql中使用带有group by的子查询?

mysql GROUP BY 真的慢上一个视图