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

    @rll
    select distinct year(dat) from table
    Ответ написан
    Комментировать
  • Как написать запрос?

    @rll
    SELECT t.*
    FROM твоятаблица t
    INNER JOIN (
    	SELECT id
    		,(
    			CASE coalesce(field, '') WHEN '' THEN 0 ELSE 1 END + 
    			CASE coalesce(field2, '') WHEN '' THEN 0 ELSE 1	END + 
    			CASE coalesce(field3, '') WHEN '' THEN 0 ELSE 1 END + 
    			CASE coalesce(field4, '') WHEN '' THEN 0 ELSE 1 END + 
    			CASE coalesce(field5, '') WHEN '' THEN 0 ELSE 1 END + 
    			 CASE coalesce(field6, '') WHEN '' THEN 0 ELSE 1 END
    			) AS cnt
    	FROM твоятаблица
    	) AS a ON a.id = t.id AND a.cnt >= 2
    Ответ написан
    1 комментарий
  • Sql просуммировать значения в 100 колонках?

    @rll
    Без использования языков программирования, чисто средствами коммандной строки SQLITE можно сделать так:

    Допустим это исходные данные (примерно как у автора запроса?):
    CREATE TABLE if not exists mytable (id integer, column1 integer, column2 integer, column3 integer);
    insert into mytable values (1, 54, 88, 99);
    insert into mytable values (2, 22, 12, 778);
    insert into mytable values (3, 0, 123, 88);
    insert into mytable values (4, 7, 42, 35);
    insert into mytable values (5, 5, 47, 23);


    Тогда сумму колонок можно получить так:
    create table if not exists temp(a text, b text, c text, d text, e text, f text);
    
    .out temp.txt
    pragma table_info('mytable');
    .out stdout
    
    .import temp.txt temp
    
    .out temp.txt
    select 'select ' || group_concat(b, '+') || ' as resultColumn from mytable;' from temp where b like 'column%';
    .out stdout
    drop table temp;
    
    .read temp.txt


    Команды можно подсунуть в SQLITE в виде скрипта, тогда даже и набирать их не надо.
    Ответ написан
    Комментировать