Lucas is close. Essentially, the reason behind it is this: We need the photos table in the database to have only live photos in it.
You don't want half-done uploads in there (whether in progress or abandoned), and back when we still did content screening we wouldn't want unapproved shots in there either. If you do have them in there, you have to filter them out of every photo search (even simple stuff like "latest shots"), which slows things down, That's not much of an issue yet, but it will be as the DB grows further. Also, there's a risk that missing info on a part-uploaded shot could cause something to go awry.
So we have a "pending uploads" table that holds all the info you supply during upload, adding to it bit by bit, all against a temporary ID. When you hit that "Done" button (or when we still did content screening, when the shot was approved), we copy it all across into the "live" table, where it gets its final ID. Obviously not all uploads are completed for one reason or another, and the difference in the numbers is likely the number of abandoned/cancelled uploads.
As to completed uploads that were subsequently deleted, that number is currently just a shade over 900, or about 0.95% of completed uploads. That percentage has been coming down steadily, suggesting that many of the deletions happened at the beginning. (People figuring it out? Me doing lots of testing? Re-uploads before we had the re-upload feature? Dunno.)
My friend and I applied for airline jobs in Australia, but they didn't Qantas.