【问题标题】:MS Version of This MySQL View with GROUP BY?带有 GROUP BY 的这个 MySQL 视图的 MS 版本?
【发布时间】: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 不应该重复。

标签: sql-server view group-by multiple-tables


【解决方案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 在做什么(错误)

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    相关资源
    最近更新 更多