adrpar / paqu

A parallel query engine for MySQL + Spider Engine built on a fork of shard-query
GNU General Public License v2.0
10 stars 0 forks source link

Query with more than one GROUP BY column does not work #27

Open kristinriebe opened 9 years ago

kristinriebe commented 9 years ago

Only the second GROUP BY column is transferred to the node-query, thus the result is not correct. (Current work around: need to do several individual queries for each snapnum.)

Query:

SELECT snapnum, 0.25*(0.5+FLOOR(LOG10(Mvir)/0.25)) AS log_mass, COUNT(*) AS num FROM MDR1.BDMV WHERE hostFlag = -1 GROUP BY snapnum, FLOOR(LOG10(Mvir)/0.25) ORDER BY snapnum, log_mass

Query plan:

-- CALL paquExec('SELECT `snapnum` AS `snapnum`,0.25 * ( 0.5 + FLOOR( LOG10( `Mvir` ) / 0.25 ) ) AS `log_mass`,COUNT(*) AS `num`,FLOOR( LOG10( `Mvir` ) / 0.25 ) AS `_FLOOR_LOG10_Mvir_/_0__25_` FROM MDR1.BDMV WHERE ( `hostFlag` = -1 ) GROUP BY FLOOR( LOG10( Mvir ) / 0.25 ) ', 'aggregation_tmp_38308961')
-- USE spider_tmp_shard
-- SET @i=0-- CREATE TABLE cosmosim_user_kristin.`mdr1-massfunctions2` ENGINE=MyISAM SELECT @i:=@i+1 AS `row_id`, `snapnum`,`log_mass`,SUM(`num`) AS `num` FROM `aggregation_tmp_38308961` GROUP BY `snapnum`,`_FLOOR_LOG10_Mvir_/_0__25_` ORDER BY `snapnum` ASC,`log_mass` ASC 
-- CALL paquDropTmp('aggregation_tmp_38308961')