无法找到我的问题的解决方案,希望您的帮助。
~~帖子已被编辑,只有一个问题~~-
在选择多列时按一个查询分组。
在MySQL
中,您可以按需要随意分组,它仍然会选择所有它们,因此,例如,如果我想选择最新的100个交易,按电子邮件分组(仅获取单个电子邮件的最后一个交易) )
在MySQL中,我会这样做:
SELECT * FROM db.transactionlog
group by Email
order by TransactionLogId desc
LIMIT 100;
在SQL Server
中这是不可能的,建议使用谷歌搜索一点点来指定我要使用汇总的每一列,这样不会造成值的混合(在分组的行之间混合列) ?
例如:
SELECT TOP(100)
Email,MAX(ResultCode) as 'ResultCode',MAX(Amount) as 'Amount',MAX(TransactionLogId) as 'TransactionLogId'
FROM [db].[dbo].[transactionlog]
group by Email
order by TransactionLogId desc
TransactionLogId
是primarykey
,它是identity,由其排序以实现最后插入。
只是想知道我将进行此类查询的ResultCode
和Amount
将是最后插入的行,而不是分组行或w / e中的最高行。
〜编辑〜 样本数据-
第1行:
Email : test@email.com
ResultCode : 100
Amount : 27
TransactionLogId : 1
第2行:
Email: test@email.com
ResultCode:50
Amount: 10
TransactionLogId: 2
使用上面的示例数据,我的目标是获取的行详细信息
TransactionLogId
= 2。
但是实际发生的是,我得到了两者的混合值,就像我获得transactionLogId = 2一样,但是得到了第一行的结果代码和数量。
我该如何避免?
谢谢。