Om du absolut inte har några uppgifter om ditt problem, är du tvungen att göra en uppskattning.
Formelns allmänna form förklaras i kommentarerna:
- om vi bara använder en nyckelkolumn (
x
) av ett index med flera kolumner (medc
kolumner), får via
rader (1 % av det totala antalet rader). Så förx=1
, resultatet ära
per definition. - om vi vet värdet för varje nyckelkolumn i ett flerkolumnsindex får vi antalet rader per hel nyckel (
b
); så förx=c
, får vib
rader (som är 1 eller 10 ) per definition. - däremellan (om vi använder nyckelvärden för mer än 1 nyckelkolumn, men inte alla), för varje ytterligare känt nyckelvärde kan vi utesluta några ytterligare rader:vi har
a-b
rader som inte kommer att tillhöra fallet där vi vet vår fulla nyckel (som skulle hab
rader), och per definition ska de exkluderas proportionellt mot förhållandet mellan användbara nyckelkolumner ((x-1)/(c-1)
). -1
i(x-1)/(c-1)
är bara ett skift (du kan bara använda olika variabelnamn), eftersom vi bara behöver räkna de ytterligare kolumner, menc
ochx
är räkningen inklusive den första kolumnen. (I en tidsserie skulle du anropa parametern för den första kolumnent=0
och-1
gör precis det).
Så avslutningsvis får vi a - (a-b) * (x-1)/(c-1)
(a
för den första nyckelkolumnen minus raderna vi proportionellt exkluderar). Detta är (om du omvandlar det uttrycket lite) exakt den formel som ges. En snabb förnuftskontroll:För x=1
(x-1=0
), den andra termen är 0 och vi får a
, såsom definieras av det första villkoret; för x=c
, får vi a-(a-b)=b
som definieras av det andra villkoret.
Det är inte orimligt att göra denna ansatz med dessa antaganden, men du kan förmodligen hitta en annan formel som är lika vettig. Att hävda att det är bättre skulle dock vara en svårare uppgift.
Sedan är det frågan om att välja värden (b=10
och 1%
I detta fall). Du kan självklart välja vilket värde som helst. För att göra detta utan tillförlitlig data förutom en magkänsla, finns det ett koncept som kallas Fermi-uppskattningen :
Du väljer i princip bara storleksordningen (1, 1000000, 1/100) för dina inmatningsparametrar, och du får en rimlig storleksordning för ditt resultat.
Så hur många rader förväntar du dig att en icke-unik nyckel ska täcka? Det är mer än 1, annars skulle du göra det till en unik nyckel, men är det mer som 2, 10 eller 100? 10 är förmodligen en bra gissning (den täcker värde från cirka 3 till 30 i den uppskattningen). Så även om dessa siffror kunde ha kommit från en 2-årig världsomspännande undersökning om nyckelfördelning, kommer uppskattade värden i potenser 10 vanligtvis på ett sådant sätt. Om du vill vara helt säker, fråga utvecklaren.
Och den obligatoriska xkcd för den här typen av ämnen:What-if? Måla jorden