Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DELIMITER //
- CREATE FUNCTION histogram(col INT, bins INT) RETURNS TABLE (bin_number INT, bin_left INT, bin_right INT, bin_frequency INT)
- BEGIN
- DECLARE min, max, bin_size INT;
- SELECT MIN(col) INTO min, MAX(col) INTO max FROM table;
- SET bin_size = (max - min) / bins;
- CREATE TEMPORARY TABLE hist (bin_number INT, bin_left INT, bin_right INT, bin_frequency INT);
- INSERT INTO hist (bin_number, bin_left, bin_right, bin_frequency)
- SELECT FLOOR((col - min) / bin_size) AS bin_number,
- MIN(col) + bin_number * bin_size AS bin_left,
- MIN(col) + (bin_number + 1) * bin_size AS bin_right,
- COUNT(*) AS bin_frequency
- FROM table
- GROUP BY bin_number;
- RETURN SELECT * FROM hist;
- END//
- DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement