Задать вопрос
Ответы пользователя по тегу Массивы
  • Как одним запросом обновить несколько строк одним запросом с формулами SQL?

    gnifajio
    @gnifajio
    Совершенствуюсь каждый день
    Да, это можно сделать через один запрос с использованием транзакций. Для этого можно использовать оператор UPDATE с формулами в качестве новых значений для столбцов.

    Примерно так:

    BEGIN;
    UPDATE table1
    SET stock2 = array.st,
        sumStock = stock + stock2,
        price = array.pr
    FROM (VALUES ('art1', 'st1', 'pr1'), ('art2', 'st2', 'pr2'), ...) AS array(art, st, pr)
    WHERE table1.article = array.art;
    COMMIT;


    В этом запросе сначала начинается транзакция с командой BEGIN. Затем обновляется таблица table1 с использованием оператора UPDATE. В качестве новых значений указываются формулы, которые берут значения из массива с помощью FROM и VALUES. С помощью условия WHERE задается, что строки в таблице table1 должны быть обновлены только для тех строк, у которых article совпадает с art из массива. В конце транзакция завершается командой COMMIT.
    Ответ написан
    Комментировать
  • Задан массив состоящий из 15 элементов вещественного типа определить количество элементов значения которых больше первого элемента?

    gnifajio
    @gnifajio
    Совершенствуюсь каждый день
    Вот пример того, как это можно сделать:
    arr = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.1, 11.1, 12.2, 13.3, 14.4, 15.5]
    
    # Сохраняем значение первого элемента в переменную
    first_element = arr[0]
    
    # Инициализируем счетчик количества элементов
    count = 0
    
    # Перебираем элементы массива
    for element in arr:
        # Если текущий элемент больше первого элемента, увеличиваем счетчик
        if element > first_element:
            count += 1
    
    # Выводим результат
    print(f'Количество элементов, значения которых больше первого элемента: {count}')
    Ответ написан
    Комментировать