2017-01-12 1 views
1

У меня есть набор чисел в таблице с двумя столбцами, но мне нужны только отрицательные числа, вычитаемые на 10, а затем их можно использовать в запросе прямо в SQLite3.Вычесть из отрицательных чисел в столбце для использования в SQL-запросе

Я в настоящее время имею следующий запрос:

10 * (customer_x/10), 10 * (customer_y/10), 
COUNT (*) FROM t_customer 
GROUP BY customer_x/10, customer_y/10 
ORDER BY 3 DESC; 

Что делает значение в customer_x и customer_y в фундаментальные координаты, а любые отрицательные значения будут 10 выше, чем сетки площади они должны быть. Мне нужен способ вычесть 10 из только отрицательных значений до отправки в запрос.

+0

Пожалуйста, дайте пример того, что у вас есть и что вы хотите достичь –

ответ

0

Одним из вариантов было бы использовать подзапрос, который генерирует скорректированные цифры в случае отрицательных значений:

SELECT 10 * (t.customer_x/10) AS col1, 
     10 * (t.customer_y/10) AS col2, 
     COUNT(*) AS some_count 
FROM 
(
    SELECT CASE WHEN customer_x < 0 THEN customer_x - 10 ELSE customer_x END AS customer_x, 
      CASE WHEN customer_y < 0 THEN customer_y - 10 ELSE customer_y END AS customer_y 
    FROM t_customer 
) t 
GROUP BY t.customer_x/10, 
     t.customer_y/10 
ORDER BY 3 DESC; 
+0

Это будет делать! Благодарю. –

+0

Из любопытства, как бы реализовать тот же подзапрос в этом: 'SELECT 10 * (c.customer_x/10), 10 * (c.customer_y/10), COUNT (*) как num_orders, SUM (o .order_total) ОТ t_customer с РЕГИСТРИРУЙТЕСЬ t_order уплотнительное ON c.customer_id = o.customer_id GROUP BY c.customer_x/10, c.customer_y/10 ORDER BY SUM (o.order_total) DESC; ' –

+0

@DaveC You должен открыть новый вопрос, если это возможно. –