|
我有一个数据库,其中有帐号、日期、发生额....。
客户的开户日期在一年中任何一日都可能,开户后使用帐号则是很频繁的,我现在要查找开户后第一笔交易的所有信息
因每一个客户肯定有很多交易,所以我考虑用 distinct来抑制帐号,结果应该留下第一次出现的帐号,
然而,我错了,我查到《程序号的SQL金典》有下面这样一段话,也就是说当只有一列时,可抑制,多列时,系统自动按照合并成一列来处理,是否有办法在多列时仅对一列进行抑制?
DISTINCT 是对整个结果集进行数据重复抑制的,而不是针对每一个列,执行下面的SQL 语句:
SELECT DISTINCT FDepartment,FSubCompany FROM T_Employee 执行完毕我们就能在输出结果中看到下面的执行结果: FDepartment FSubCompany
Development Beijing
Development ShenZhen
HumanResource Beijing
InfoTech Beijing
InfoTech ShenZhen
Sales Beijing
Sales ShenZhen 检索结果中不存在FDepartment 和FSubCompany 列都重复的数据行,但是却存在FDepartment 列重复的数据行,这就验证了“DISTINCT 是对整个结果集进行数据重复抑制的” 这句话。 |
|