Как сделать математическое суммирование в sqlite? - PullRequest
0 голосов
/ 06 января 2020

Я новичок ie с sqlite и изучаю онлайн с учебником по sqlite. Я сделал доску с 2 столбцами, один как 1 2 3 4, а другой как 10 20 30 40.

Я читал в Интернете, что я могу сделать некоторые математические операции с sqlite, например 10 + 20 = 30, или 20 + 30 = 40, но я не могу сделать это в sqlite. Я имею в виду, что если я хочу сделать математическую операцию, такую ​​как a (1) + a (4), 1 и 4 - это позиция, а a - это значение, как я могу сделать это на доске sqlite? Не могли бы вы дать мне несколько идей? Большое спасибо.

Ответы [ 3 ]

0 голосов
/ 06 января 2020

Вам нужно SUM() и предложение WHERE. Таким образом, для этой таблицы:

| id  | col |
| --- | --- |
| 1   | 10  |
| 2   | 20  |
| 3   | 30  |
| 4   | 40  |

запрос должен быть:

select sum(col) as result
from tablename
where id in (1, 4)

См. demo . Результаты:

| result |
| ------ |
| 50     |
0 голосов
/ 06 января 2020

При вычислении итогов в SQL первое, что приходит в голову, это функции агрегирования SUM и COUNT.

Который уже охвачен другими ответами.

Но я подумал, что стоит упомянуть, что самостоятельное объединение также может работать в этом случае.
Хотя вы не часто Видите, это используется таким образом.

Пример данных:

CREATE TABLE yourtable
(
  col1 INTEGER PRIMARY KEY NOT NULL, 
  col2 INTEGER NOT NULL
);

INSERT INTO yourtable 
(col1, col2) VALUES
(1, 10),
(2, 20),
(3, 30),
(4, 40);

Запрос:

select 
t1.col1 as col1_1,
t2.col1 as col1_2,
t1.col2 as col2_1,
t2.col2 as col2_2,
(t1.col2 + t2.col2) as result
from yourtable as t1
join yourtable as t2 
  on t2.col1 > t1.col1
where (
    (t1.col1=1 and t2.col1 = 4)
 or (t1.col1=2 and t2.col1 = 3)
)
;
col1_1 | col1_2 | col2_1 | col2_2 | result
:----- | :----- | :----- | :----- | :-----
1      | 4      | 10     | 40     | 50    
2      | 3      | 20     | 30     | 50    

дБ <> скрипка здесь

0 голосов
/ 06 января 2020

SELECT sum(the_column_to_sum) AS mysummation FROM your_table;

Будет сумма всех строк, набор результатов будет одной строкой с одним столбцом с именем mysummation. Очевидно, что the_column_to_sum и your_table будут заменены соответствующими именами.

Что касается

Я имею в виду, что если я хочу выполнить математическую операцию, подобную этой (a) + a ( 4), 1 и 4 - это позиция, а a - это значение,

Не существует понятия потизации в отношении строк, если они не упорядочены с использованием ORDER.

Однако, если вы имеете в виду, что строка со значением 1 в первом столбце (10 во втором столбце) должна быть добавлена ​​в строку со значением 4 в первом столбце (40 во втором столбец) и что a является некоторым другим значением, тогда вы можете использовать: -

SELECT sum(the_column_to_sum) + your_value AS mysummation FROM your_table WHERE the_first_column IN(1,4);

или

SELECT sum(the_column_to_sum) + your_value AS mysummation FROM your_table WHERE the_first_column = 1 OR the_first_column = 4;

Как пример: -

CREATE TABLE IF NOT EXISTS mytable (col1 INTEGER, col2 INTEGER);
INSERT INTO mytable VALUES(1,10),(2,20),(3,30),(4,40);
SELECT sum(col2) AS summation FROM mytable;
SELECT sum(col2) + 100 AS summation FROM mytable WHERE col1 IN (1,4);
SELECT sum(col2) + 100 AS summation FROM mytable WHERE col1 = 1 OR col1 = 4;

Производит 3 Результаты согласно: -

enter image description here

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...