1- About unique rank: There's already gameservers who logs the unique kills at the account database, so ask your dude about the gameserver he's using, if Evangelion then you'll find a table called "Evangelion_uniques", else if srZor the table name is "srZor_uniques". Nah, there's no specific points for each unique but you can define that yourself. You can do something like this to get the top record by unique kills:

.
2- About pvp rank: Well, actually you can get the amount of pvp kills like what I've done above but with shardlog's _LogEventChar table like:

.
But I actually prefer making a new table and altering _AddLogChar procedure to insert into that new table, which will be smoother and easier to control.
3- About player rank: PPL at past used to compare level and exp offset, but newer they made a system called item points. This might be quite deep for you, since you got no experience at sro's database. First, there's 3 rarity types at SRO. Arranged by strength/power (Normal A, Normal B, Normal C, Star (Rare A), Moon (Rare B), Sun (Rare C)), you're gonna make a specific amount of points for each rarity type of them. And calculate the amount of points checking each item for each character. Like this:

.
(Note: The query of player rank is kinda dump behaving, it was an old code of me. @

kinda not working as it should tho. You can make much better one, I am just giving an example.)
Note: You might find the code stupid and complex. If you use inner join or table as, it would be much quicker and smoother. And as I said before, I am just giving an example. ATN it was an old code.
I will respond to your other questions later.