2017-03-27 10 views
1

指定された列に従って重複を含むテーブルが指定されています。この場合のpersonid、一意の行の選択方法(列dateを除く)指定された列に従って一意の行を選択します。

date  |personid |amount |category |location 
23/02/2017 |frank  |2344.00 |productA |uk 
23/02/2017 |claire |4443.23 |productB |usa 
24/02/2017 |frank  |2344.00 |productA |uk 

date列を除いた、ユニークな行を選択:

personid |amount |category |location 
frank  |2344.00 |productA |uk 
claire |4443.23 |productB |usa 
+0

http://stackoverflow.com/questions/2917558/mysql-ignore使用することができます-a-selected-column-using-distinct –

答えて

1

のような明確な

1

GROUP BYを使用してみてください:

SELECT personid, amount, category, location 
FROM yourTable 
GROUP BY personid, amount, category, location 

またはSELECT DISTINCT

SELECT DISTINCT personid, amount, category, location 
FROM yourTable 

あなたミグhtはGROUP BYを使用してフードの下でDISTINCTがよく実装されることを知っておくと便利です。この

Select distinct personid,amount,category,location from myTable 
1

使用あなたは

select distinct personid,amount,category,location from table 

OR

select personid, amount, category, location FROM table group by personid, amount, category, location 
0
SELECT DISTINCT t0.* 
FROM table AS t0 
LEFT JOIN table AS t1 
    ON t0.personid=t1.personid 
    AND t0.amount=t1.amount 
    AND t1.date>t0.date 
    AND t1.category=t0.category 
    AND t1.location= t0.location 
WHERE t1.col1 IS NULL; 
関連する問題