带有 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:带有 ORDER BY COUNT 的 GROUP_CONCAT?