2012-09-13 42 views
0

我需要建立一个超出我的编程能力的SQL查询。 好吧,这里是我的要求:建立一个SQL查询 - 返回一些行,有些不是

比方说,我有一个表,有:身份证,USER_ID电子邮件列。此查询,应该SELECT user_id只有一次!如果我一次匹配了user_id,查询应该继续,但是如果在另一行中再次匹配相同的user_id,我们应该跳过它。

这里谈到的主要问题...

想象我们抓住USER_ID一次,跳过与user_id的所有相同的其他行,现在我需要总和所有从列内容相同的user_id。

我觉得我这个复杂一点,我会尽量说明我的问题:

illustration of my problem

这个问题如果通过SQL不是唯一可解,那么PHP的答案将工作太。

我试图创建一个用户列表(没有重复的用户),并添加他们支付的金额。

根据图像,user_id说明支付90.00(12 + 45 + 33)

谁能告诉我一个方法如何实现这一目标?

回答

4

假设表的名称是users

SELECT user_id, email, SUM(amount) FROM users GROUP BY user_id 
+1

如果你要选择“电子邮件”你的话是要组太... –

+0

你需要命名的总和(金额),只是好奇? 选择user_id,作为来自用户组的user_id的总金额(金额); – Brant

+0

@lc,我想我假设电子邮件列是唯一的每个user_id。 – ggreiner