2015-07-17 4 views
0

Вот что мой запрос:Разделив два Рассчитанные значения в MySql выбрать

SELECT a.cartodb_id as cartdb_id, a.identifier AS store, 
(SELECT count(*) FROM full_data_for_testing_deid_2) ,count(b.*) AS customer_count 
FROM demo_locations_table a, full_data_for_testing_deid_2 b 
WHERE ST_DWithin(a.the_geom::geography,b.the_geom::geography,16093) 
GROUP BY a.cartodb_id 

и вот что возвращается:

| cartdb_id | store   | count | customer_count | 
|-----------|-----------------|-------|----------------| 
| 1   | Store Number: 1 | 32085 | 30    | 
| 2   | Store Number: 2 | 32085 | 283   | 
| 3   | Store Number: 3 | 32085 | 609   | 
| 4   | Store Number: 4 | 32085 | 61    | 
| 5   | Store Number: 5 | 32085 | 325   | 

В этом случае count равняется общему количеству клиентов (один ряд на клиента) в моем столе. То, что я хочу, это еще один столбец, на котором показан процент клиентов в каждом магазине: customer_count, деленный на count, но я не могу понять, как его интегрировать в мой запрос. PS: Мне действительно не нужен столбец count. Я просто включил его в качестве ссылки.

Спасибо.

ответ

1
SELECT a.cartodb_id as cartdb_id, a.identifier AS store, 
count(b.*) AS customer_count , count(b.*)/(SELECT count(*) FROM full_data_for_testing_deid_2)*100 as Percentage 
FROM demo_locations_table a, full_data_for_testing_deid_2 b 
WHERE ST_DWithin(a.the_geom::geography,b.the_geom::geography,16093) 
GROUP BY a.cartodb_id 
+0

Спасибо. Это работает, но это не дает мне правильных результатов. Я думаю, что это ['full_data_for_testing_deid_2)/count (b. *) * 100'] нужно отменить (например: [' count (b. *)/Full_data_for_testing_deid_2) * 100'], но я получаю ошибку. – jonmrich

+1

Я считаю, что OP хотел '100 * count (b. *)/(SELECT count (*) FROM full_data_for_testing_deid_2)' в качестве столбца процента. – cars10m

+0

Да, @ cars10. Это сделал трюк. Благодарю. Это дает мне округленное число (например, 1). Есть ли способ убедиться, что это возвращает десятичное число в несколько мест (например, 1.456)? – jonmrich

Смежные вопросы