从一个表中,我想创建4个不同的“Klasse”在一个选择查询中按KW排序的组。
| 身份证|姓名|克拉塞|共振|千瓦|……|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 四|福尔克内希特|克罗伊茨里特|五百七十|13777|小行星8888|
| 九|阿盖尔尼斯|佐伯雷尔|七一零|小行星120七五|一三四四|
| 十四岁|乌瑟鲁斯|代莫嫩耶格尔|七七零|小行星11|小行星8888|
| ……|……|……|……|……|……|
| 十五岁|贝尔泽普|门奇|六百七十|小行星10||
| ……|……|……|……|……|……|
| 三|洛达尔|巴尔巴尔|四百七十|小行星9876|小行星8888|
| ……|……|……|……|……|……|
| 五|WootanFall|托滕贝施韦勒|八一零|八九五六|小行星8888|
| ……|……|……|……|……|……|
每组4不得包含相同的“Klasse”,下一组必须是下一个最高KW。
所需输出:
| 组名|球员|
| --------------|--------------|
| 组蛋白1|VolkerKnecht,Aergernis,Utherus,Belzepoop|
| 组蛋白2|SiliconWilly Siegesmund Eisenklaus Loddar|
| ……|……|
因此grp 1包含“Klasse”= 1“Kreuzritter”,1“Zauberer”,1“Dämonenjäger”,1“Mönch”,具有最高KW
grp 2:contains“Klasse”= 1“Dämonenjäger”,1“Zauberer”,1“Kreuzritter”,1“Barbar”(第二最佳KW constalation)
grpX可以具有除下一个最高KW组之外的由“Klasse”构成的任何其他构成
fiddle here:http://sqlfiddle.com/#!9/fc2f87/1/0
可能发生的是,我还需要一些更多的where和排除“Klasse”,使这个表来我的愿望
非常感谢
1条答案
按热度按时间00jrzges1#
我认为你的问题不能用SQL来解决,应该用后端代码来实现。下面是一个封闭的查询,它可以将你的数据分组为4个
Klasse
。上述查询的解释:
1.第1部分:按
KW
列的值对每个Klasse
中的数据进行排序。1.第2部分:按照第1步的排名值对数据进行排序,然后为每个记录分配行号。这样,数据将从每组的最高排名到最低排名进行排序。
1.第3部分:将每4条记录分组为1组。
在此处观看演示