2017-01-29 130 views
-1

我有一个表3列这样的记录:如何选择不重复的只是一个字段和重复字段总在SQL

+------------+---------------+-------+ 
| id  |  category | price | 
+------------+---------------+-------+ 
    1   | Home   | 20 
    2   | Transport  | 30 
    3   | General  | 40 
    4   | General  | 50 

我期望的结果是这样的:

category   price 
+------------+---------------+-------+ 
    Home    20 
    Transport   30 
    General   90  

我需要有没有任何重复的类别名称。其实我需要他们的ID和类别,什么是最好的SQL命令来做到这一点?我在下面的表格中使用了DISTINCT,但是我无法获得合适的结果。

SELECT 
    MIN(id) AS id, `categories`, `expenses_price` 
FROM 
    expensess 
WHERE 
    SUM(expenses_price) 
GROUP BY `categories` 

,但总不能算

+0

MySQL代码在PHP的SQL的 –

回答

1

试试这个拿到分钟ID和金额的价格:

SELECT 
min(id) as ID, category, SUM(price) 
FROM 
expenses 

GROUP BY category 
ORDER by ID 

SQLFiddle Example

1

很简单group by

SELECT 
    min(id) id, `categories`, SUM(price) `expenses_price` 
FROM 
    expensess 
GROUP BY `categories` 
+0

,但费用_价格不计算 –

+0

谢谢你这样的工作 –