I need to display the pool and worker hashrates on my website. The pool uses PSQL.
hashesPerSecond = math.pow(2, 32) * proofsOfWork / secondsElapsed
where proofsOfWork is the number of difficulty 1 proofs of work (aka shares) that the user or pool has found during secondsElapsed seconds.
If you use variable difficulty, then you can count a proof of work from someone mining at difficulty X the same as X proofs of work at difficulty 1.
For mhps divide by 1e6. For ghps divide by 1e9. And so on..
math.pow(2, 32) == 4294967296