sql - 按最大分组

标签 sql sql-server aggregate-functions greatest-n-per-group

SELECT tblIssue.SYMB, tblIssue.[PRCE], tblIssue.[Shareholder]
FROM tblIssue

我正在尝试提取每个符号最大股东数量的符号和价格。例如,我只有 1 行 ASN,价格为 60.62 美元。

SYMB    Price   Shareholder
ASN $0.00   0
ASN $0.00   51
ASN $25.18  0
ASN $25.26  0
ASN $36.00  0
ASN $60.62  231
ASNL    $0.00   101
ASR $0.00   4
ASR $0.00   24
ASR $37.17  13

最佳答案

SELECT i1.*
FROM tblIssue i1
  LEFT OUTER JOIN tblIssue i2
  ON (i1.[SYMB] = i2.[SYMB] AND i1.[Shareholder] < i2.[Shareholder])
WHERE i2.[SYMB] IS NULL;

这是我处理此类问题的一个技巧:当没有其他行 i2 具有相同的 [ 时,显示与 i1 对应的行SYMB] 和更大的[股东]。 IE。如果不存在具有更大 [Shareholder] 的行,则 i1 必须具有最大值。

[SYMB] 的每个不同值的最高 [Shareholder] 值存在平局时,此查询会返回多行,但对于大多数情况也是如此其他人在此线程上给出的其他答案。要解决此问题,您必须使用表的唯一列向联接添加另一个条件。

关于sql - 按最大分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/526143/

相关文章:

sql - 如何获取字典中没有的单词?

sql - 将 bool 值转换为整数SQl服务器

sql-server - 如何在 Express 4 Web 应用程序中跨多个路由使用单个 mssql 连接池?

sql-server - Azure 恢复服务和 SQL 2014 托管备份不能很好地协同工作

mysql - SQL 仅选择列上具有最大值的行

mysql - 将每组的总和除以总计

c# - 在服务器和客户端之间发送查询结果的最有效方式是什么

mysql - 在 MySQL 的查询中创建 Select 查询

sql - MySQL 索引结构 : multiple or single index?

mysql - SQL 仅选择列上具有最大值的行