2011-11-18 136 views
0

以下是困境:我有一个包含行的表。我需要基于特定值(在电子邮件列)的频率进行计数,然后在特定列(成本)ADD号码...作为例子基于计数梳理行,增加值

mail   cost 
[email protected]  10 
[email protected]  5 
[email protected] 3 
[email protected]  7 
[email protected] 2 

所以我需要基于所述组行电子邮件地址,并在分组行“成本”列中添加数字。结果应该出来作为一个磁盘阵列:

email   frequency totalCost 
[email protected]  3   22 
[email protected] 2   5 

回答

0

这可以通过一个SQL查询完成。

SELECT 
    email, 
    COUNT(email) AS frequency, 
    SUM(cost) AS totalCost 
FROM 
    emails 
GROUP BY 
    email 
0

下面就来尝试一种方法:

INSERT INTO frequency (mail, frequency, cost) 
SELECT mail, COUNT(*), SUM(cost) FROM mail GROUP BY mail; 

这是假设:

mail是包含你的第一个数据集 frequency表是表你想输入你的总值。

让我们知道这是否正常工作:)

[编辑/附加]: 这些表的定义我认为:

CREATE TABLE mail (
     mail VARCHAR(50) 
    , cost INT 
); 

CREATE TABLE frequency (
     mail VARCHAR(50) 
    , frequency INT 
    , cost INT 
); 
0

这个查询应该工作:

SELECT email, COUNT(*) AS frequency, SUM(cost) AS totalCost 
FROM your_table 
GROUP BY email 

然后,您可以使用您使用的任何API在PHP中获取它。这些都是基础知识,理论上你应该可以自己想出解决方案,只要你准备好申请。