Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Select TOP X (or bottom) percent for numeric values in MySQL

Tags:

sql

select

mysql

I was wondering if there are any functions that can be used in MySQL to select the TOP X(or bottom) percent from a column containing numeric values.

Basically, I have a column containing a list of prices and I only want to return those fields in the top ten percentile of prices. Any suggestions?

like image 204
Spencer Avatar asked Jan 19 '11 21:01

Spencer


1 Answers

just as an FYI (i know this question is a few years old), this can be done other, cleaner ways as well.

SELECT * FROM product_table WHERE price >= (SELECT price FROM product_table 
ORDER BY price DESC LIMIT 1 OFFSET (SELECT 0.1 * COUNT(*) FROM product_table));

i ran a similar query over a very large database, and it ran very quickly.

like image 110
jasonmclose Avatar answered Oct 07 '22 02:10

jasonmclose