這裏的解決方案
如果所有數字具有相同的一組數字(2,1,3),(3,2,1),...等,這意味着它們具有相同的階乘
例如:2 * 1 * 3 = 3 * 2 * 1 ...等
注:這個解決方案適用於大於零(階乘規則)不同的任何數字
步驟的溶液
- 化妝乘法和加法的每一行
- 化妝分區基礎上,乘法和加法,並將其命名[部分]
- 採取僅出現在記錄一次=> [部分] = 1
- 算上記錄
這裏的解決方案
with fact
as(
select Id,digit1,digit2,digit3,digit1*digit2*digit3 as [mult],digit1+digit2+digit3 as [sum]
from Data),part as(
select Id,digit1,digit2,digit3,[mult],[sum],row_number() over(partition by [mult],[sum] order by [mult],[sum]) as [Part]
from fact
)
select Id,digit1,digit2,digit3,(select count(*)
from fact f where f.[mult]=p.[mult] and f.[sum]=p.[sum]) as amount
from part p
where part=1
這裏一個正確的結果DEMO
希望它會幫助你
組在同一哪個數字?你有digit1,2,3嗎? – Monah 2014-11-22 06:44:19
你正在使用哪些DBMS? MS SQL Server/MySQL/Oracle? – 2014-11-22 06:52:04
如果一行中包含相同的數字.. like(1,2,3)&(3,2,1)&(2,1,3)可以爲它們組獲得相同的數字集合。 – 2014-11-22 06:54:40