Tsql Sql GroupBy,结果集中还有一个字段,与GroupBy子句中的字段相同

Tsql Sql GroupBy,结果集中还有一个字段,与GroupBy子句中的字段相同,tsql,Tsql,我有一张桌子,上面有不同的优惠,都是特定日期的。取决于价格变化的日期。我想每次约会都能买到最便宜的东西 我的问题是我使用一个组,比如: 按日期从交易组中选择价格、日期、价格 要显示报价,我需要更多不在group by子句中的记录。最好的字段是我的autoid,因此,如果客户选择具有特定价格的报价,我可以使用第二个select来显示该报价及其所有字段 我希望这能使回答我的问题更简单。我试图尽可能地保持它的通用性,但我感觉它描述得不够清楚:-)只需将Id列添加到分组依据列表中即可 SELECT id

我有一张桌子,上面有不同的优惠,都是特定日期的。取决于价格变化的日期。我想每次约会都能买到最便宜的东西

我的问题是我使用一个组,比如:

按日期从交易组中选择价格、日期、价格

要显示报价,我需要更多不在group by子句中的记录。最好的字段是我的autoid,因此,如果客户选择具有特定价格的报价,我可以使用第二个select来显示该报价及其所有字段


我希望这能使回答我的问题更简单。我试图尽可能地保持它的通用性,但我感觉它描述得不够清楚:-)

只需将
Id
列添加到
分组依据列表中即可

SELECT id, date, price 
FROM products 
GROUP BY id, date, price
<> P>否则SQLServer无法识别哪一个ID是按价格和日期行分组的,例如考虑以下两行:

1 | 10-10-2010 | 100 |
2 | 10-10-2010 | 100 |
对于按日期和价格分组的行,应选择哪个
Id

??? | 10-10-2010 | 100 |

您需要指定一个on ID或将其添加到group by子句中,如@sll SUPPIRED。聚合示例:

SELECT MAX(id), date, price 
FROM products 
GROUP BY date, price

如果从Select子句中删除id,则将有一个日期价格的所有不同对的列表

如果将id添加到Group By子句中,因为它是一个标识,所以表中的每条记录都将获得一行,因此Group By子句将不再有用


第三种方法是在Select子句中的id上使用聚合函数,为每个组(第一组、最小值、最大值等)获取一个值。

Hi group by在执行计数等操作时非常有用

SELECT [Display  Billing Provider], [Display  Insurance Category]
, SUM([TOTAL RVUs]) AS RVUs_08 
, SUM([Units]) AS Units_08
, SUM(Payments) AS Payments_08
FROM dbo.ProductivityAnal_2008
GROUP BY [Display  Billing Provider],[Display  Insurance Category]
ORDER BY [Display  Billing Provider],[Display  Insurance Category]

谢谢Abe

对于每个日期的
ID
,您希望看到什么?
MAX
MIN
、some random value?Group By通常表示某种聚合函数,您的描述中没有这种函数。你们是在寻找某一特定日期的价格总额吗?如果您只希望所有价格和产品ID按日期组织并显示在详细信息级别,则应使用OrderBy而不是GroupBy。我每天都有5次相同产品的不同价格,我希望每天都能获得特定产品类型的最佳交易。抱歉,snoop,否决票。这是我从任何一个声誉超过100的人身上看到的最难以理解的问题陈述。你希望看到哪一组结果?只需提供输入数据和预期输出。也许是每个日期的总价?所以只需使用
从表组中按id、date
选择、id、date、SUM(price)或什么?sll:我不在乎哪个。如果是第一个或第二个,我需要它来选择最便宜的交易。我通常没有完全相同的价格,如果我有,第一个匹配就可以了。sll:从表组中选择,id,日期,总和(价格),按id,日期有意义。我会试试这个。如果你不在乎选择哪个id-不要选择它all@CodeSaint,我投了反对票。您似乎刚刚在线找到了一个
分组查询的示例,并将其粘贴到此处,而没有尝试引用问题中的任何内容。我个人认为你应该尝试根据被问的问题来调整你的答案。@AbeMiessler谢谢你的澄清,不,问题来自我的工作,在我看来,我们应该充当向导,指出正确的参考资料和样本,而不是为他们做工作。我想这是合理的。我试图扭转我的否决票,但时间太长了。如果你编辑你的问题,系统会让我把它颠倒过来。