4
我正在試圖在GROUP
,SORT
和COUNT
中對我的名爲「商品」的表進行查詢。在一個查詢中對組進行排序和計數
這裏是我的MySql
表的簡化:
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
我想:
GROUP
通過name
SORT
通過family
,sub_family
和最後name
COUNT
的ñ行每個family
,sub_family
然後name
的umbers(在同一個sub_family
)
到目前爲止,我能夠做到的一切,但COUNT
在同一sub_family
。
事實上,下面的查詢:
SELECT
TableC.family,
TableC.NbrFamily,
TableB.sub_family,
TableB.NbrSubFamily,
TableA.name,
TableA.NbrName
FROM
(
SELECT
family,
sub_family,
name,
COUNT(DISTINCT commodities.id) AS NbrName
FROM commodities GROUP BY name
) TableA
INNER JOIN
(
SELECT
sub_family,
COUNT(DISTINCT commodities.id) AS NbrSubFamily
FROM commodities GROUP BY sub_family
) TableB
ON (TableA.sub_family = TableB.sub_family)
INNER JOIN
(
SELECT
family,
COUNT(DISTINCT commodities.id) AS NbrFamily
FROM commodities GROUP BY family
) TableC
ON (TableA.family = TableC.family)
GROUP BY TableA.name
ORDER BY TableA.family,TableA.sub_family,TableA.name
其結果如下:
family NbrFamily sub_family NbrSubFamily name NbrName
Agro 7 Grains 3 Wheat 1
Agro 7 Grains 3 Corn 1
Agro 7 Grains 3 Sugar 1
Agro 7 Fruits 4 Apple 3
Agro 7 Fruits 4 Lemon 2
Wood 4 Tree 3 Lemon 2
Wood 4 Tree 3 Oak 1
Wood 4 Tree 3 Epicea 1
Wood 4 Packaging 1 Kraftliner 1
你可以看到,NbrName
計數檸檬 2次,但我想它只能算它1次因爲一個檸檬是水果sub_family
另一個在樹sub_family
。
[更新]:這是我想要的結果:
family NbrFamily sub_family NbrSubFamily name NbrName
Agro 7 Grains 3 Wheat 1
Agro 7 Grains 3 Corn 1
Agro 7 Grains 3 Sugar 1
Agro 7 Fruits 4 Apple 3
Agro 7 Fruits 4 Lemon 1
Wood 4 Tree 3 Lemon 1
Wood 4 Tree 3 Oak 1
Wood 4 Tree 3 Epicea 1
Wood 4 Packaging 1 Kraftliner 1
你怎麼能按具有多個值的列進行排序?我覺得你很困惑。編輯你的查詢幷包含你想要的*結果。 –
根據你的帖子**'檸檬'2次,但我希望它根據你想要的結果只計算1 ** **農業7水果4檸檬2 木材4樹3檸檬2 **所以你是什麼真正的目標是? – Alex
我的問題可能不夠清楚。正如你所看到的,對於每一個檸檬來說,「檸檬」會被計數2次(一次在「水果」子系列中,另一個在「樹」子系列中)。但是我想只計算一次,因爲這兩個'檸檬'不屬於同一個子系列。一個是水果,另一個是樹。 – SuperKiwi