将Mysql中的相似名称分组为唯一记录

时间:2012-05-03 10:55:56

标签: mysql

假设我有一个包含以下行的表

id     Name                          Price      Supplier
1      Hello Apartment                $12       A
2      Hello Apartments               $8        B    
3      Itercontinental Hotel          $9        A
4      Hilton                         $18       C
5      Hello Apts                     $9        C
6      Apratrmentos Hello             $12       D
7      Ramada Hotel                   $8        A

当我调用我的结果时,我希望id 1,2,5和6被归类为1个唯一项,因此结果集应如下所示:

Hello Apts                $8    (4 offers in total)
Itercontinental Hotel     $9
Hilton                    $18
Ramada Hotel              $8

从本质上讲,我想对相似的名字进行分组。这是否可以在MySQL中使用,考虑到还有数百个其他名称需要进行分组?

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

也许是这样的:

SELECT
    SUM(T.Price) AS price,
    T.Name
FROM
(
    SELECT
        Price,
        (
            CASE WHEN Name LIKE 'Hello Ap%'
            THEN 'Hello Apts'
            ELSE Name
        ) AS Name
    FROM
        table1
) AS T
GROUP BY
    T.Name