[英]Combing rows based on a count, adding values
這是一個難題:我有一個帶有行的表。 我需要根據某個值的頻率(在eMail列中)進行計數,然后在某些列(費用)中添加數字...例如
mail cost
me@me.com 10
me@me.com 5
john@john.com 3
me@me.com 7
john@john.com 2
因此,我需要根據電子郵件地址對行進行分組,並在分組的行“費用”列中添加數字。 結果應以數組形式出現:
email frequency totalCost
me@me.com 3 22
john@john.com 2 5
這是嘗試的一種方法:
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
);
此查詢應工作:
SELECT email, COUNT(*) AS frequency, SUM(cost) AS totalCost
FROM your_table
GROUP BY email
然后,使用任何使用的API在PHP中獲取它。 這些都是基礎知識,理論上,如果您准備提出申請,那么您應該能夠自己提出這些解決方案。
這可以通過單個SQL查詢來完成。
SELECT
email,
COUNT(email) AS frequency,
SUM(cost) AS totalCost
FROM
emails
GROUP BY
email
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.