如何在查询中两次计算相同的值

时间:2013-10-04 15:14:30

标签: mysql sql

从下面这个查询中获得的结果显然是一个文件,这个文件只是在whataver列中,我希望有两个条目具有相同的文件,我有兴趣计算两次。             文件名大小类型(这是一个枚举)              ABC 10mb rur,方式

        select filename,,size,type, (case when type like '%rur%' then 'rurroad' when type like '%way%' then 'hway' end) as whatever 
        from files as f,metadata as v where f.id = v.id 
        and filename like 'ANC'
        and type like '%rur%'

我的结果是

         filename   size    type(this is an enum)       whatever
         ABC    10 mb     rur,way                          rur

我想要

         filename   size    type(this is an enum)       whatever
         ABC    10 mb     rur,way                          rur
         ABC    10 mb     rur,way                          way

同时,我的文件有大小,通常我想知道我有多少MB与rur,以及有多少方式。我想创建一个数据透视表摘要,这就是为什么我希望它们都在一个视图/表中。所以我想在可能的情况下获得10mb rur和10 mb的大小。否则我可以避免计算那么大小

我想得到结果,因为我有20%的20%方式和xx%null

1 个答案:

答案 0 :(得分:0)

只需使用UNION

select filename, size, type, (case when type like '%rur%' then 'rurroad' when type like '%way%' then 'hway' end) as whatever 
    from files as f, metadata as v where f.id = v.id 
    and filename like 'ANC'
    and type like '%rur%'

union all

select filename, size, type, (case when type like '%rur%' then 'rurroad' when type like '%way%' then 'hway' end) as whatever 
    from files as f, metadata as v where f.id = v.id 
    and filename like 'ANC'
    and type like '%way%' -- here we select %way% records - records with "rur,way" will appear in both queries.

PS:除非MySQL不支持它。不确定,但我的猜测确实如此,毕竟它是ANSI SQL。 PPS:it does

相关问题