MySQL - 在单个查询中对UNION进行分组,排序和依赖

时间:2015-04-17 15:40:37

标签: mysql count union alias

我正在2个表的单个查询中尝试GROUPSORTCOUNT。 一个叫做'commodities_customs',另一个叫'commodities_imf'。

以下是我的'commodities_customs'表的简化:

family  sub_family  name        detailed_name 
Agro    Grains      Wheat       Wheat per 1 mt
Agro    Grains      Corn        Corn per 1 mt
Agro    Grains      Sugar       Sugar per 1 mt
Agro    Fruits      Apple       Apple red
Agro    Fruits      Apple       Apple green
Agro    Fruits      Apple       Apple yellow
Agro    Fruits      Lemon       Lemon classic
Wood    Tree        Lemon       Lemon in logs
Wood    Tree        Oak         Oak in logs
Wood    Tree        Epicea      Epicea in logs
Wood    Packaging   Kraftliner  Krafliner 3mm

这是我的'commodities_imf'表的简化:

family  sub_family  name        detailed_name 
Agro    Grains      Wheat       CME Wheat
Agro    Grains      Corn        CME Corn
Wood    Tree        Cedar       CME Cedar in logs
Wood    Tree        Oak         CME Oak in logs
Wood    Tree        Lemon       CME Lemon
Wood    Packaging   Kraftliner  CME Kraftliner

我无法将两个表合并为一个,因为还有许多其他列不同。

所以基本上,我正在尝试

  1. 将两个表合并为一个(我正在使用UNION ALL,但我不确定这是正确的解决方案)
  2. GROUP by'name'
  3. SORT由'family',sub_family'和最后'name'
  4. 组成
  5. COUNT每个'家庭','sub_family'和'name'的行数(在同一个sub_family和家庭中)
  6. 我之前就该主题的查询请求了帮助: MySQL - Group, Sort and Count in a single query。检查它会很有趣。

    但是现在,我正在尝试执行相同类型的查询,但是在两个表的合并上。 这就是我期待的结果:

    family  NbrFamily  sub_family  NbrSubFamily name        NbrName
    Agro    9          Fruits      4            Apple       3
    Agro    9          Fruits      4            Lemon       1
    Agro    9          Grains      5            Corn        2
    Agro    9          Grains      5            Sugar       1
    Agro    9          Grains      5            Wheat       2
    Wood    8          Packaging   2            Kraftliner  2
    Wood    8          Tree        6           Cedar        1
    Wood    8          Tree        6           Epicea       1
    Wood    8          Tree        6           Lemon        2
    Wood    8          Tree        6           Oak          2
    

    我重新使用了一个SQLfiddle与我的新(与上面链接的其他问题相比)'union'对你的要求:http://sqlfiddle.com/#!9/b55eea/7

    我读过这个问题可能来自MySQL未处理的公用表要求。我对吗 ?你有什么想法可以解决这个问题吗?

    非常感谢你的帮助。

0 个答案:

没有答案