私はSQLを持っていますtable: names, location, volume
Names are of type string
Location are two fields of type float (lat and long)
Volume of type int
特定の範囲内のすべての場所をグループ化し、すべてのボリュームを合計するSQLクエリを実行したいと思います。
例えばgroup all the locations from 1.001 to 2 degrees lat and 1.001 to 2 degrees long into one with all their volumes summed from 2.001 to 3 degrees lat and long and so on.
つまり、サイズを決定できる地理的領域のすべてのボリュームを合計したいと思います。
名前は気にせず、場所(グループ化されたものまたは平均のいずれか)とボリュームの合計のみが必要です。
サンプルテーブルは次のとおりです。
CREATE TABLE IF NOT EXISTS `example` (
`name` varchar(12) NOT NULL,
`lat` float NOT NULL,
`lng` float NOT NULL,
`volume` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `example` (`name`, `lat`, `lng`, `volume`) VALUES
("one", 1.005, 1.007, 2),
("two", 1.25, 1.907, 3),
("three", 2.065, 65.007, 2),
("four", 2.905, 65.1, 10),
("five", 12.3, 43.8, 5),
("six", 12.35, 43.2, 2);
サイズが1度の領域の戻りクエリは次のようになります。
1.005、1.007、5
2.065、65.007、12
12.3、43.8、7
私はJDBC、GWT(違いはないと思います)、MySQLを使用しています。