Размытый логотип диаграммы ggplot

Если вы хотите иметь SELECT без проблем с идентификатором родительского идентификатора, который должен быть ниже id ребенка, можно использовать функцию. Он поддерживает также несколько дочерних элементов (как дерево должно делать), и дерево может иметь несколько головок. Он также обеспечивает разрыв, если в данных существует цикл.

Я хотел использовать динамический SQL, чтобы иметь возможность передавать имена таблиц / столбцов, но функции в MySQL не поддерживают это.

DELIMITER $$

CREATE FUNCTION `isSubElement`(pParentId INT, pId INT) RETURNS int(11)
DETERMINISTIC    
READS SQL DATA
BEGIN
DECLARE isChild,curId,curParent,lastParent int;
SET isChild = 0;
SET curId = pId;
SET curParent = -1;
SET lastParent = -2;

WHILE lastParent <> curParent AND curParent <> 0 AND curId <> -1 AND curParent <> pId AND isChild = 0 DO
    SET lastParent = curParent;
    SELECT ParentId from `test` where id=curId limit 1 into curParent;

    IF curParent = pParentId THEN
        SET isChild = 1;
    END IF;
    SET curId = curParent;
END WHILE;

RETURN isChild;
END$$

Здесь таблица test должна быть изменена до имени реальной таблицы, а столбцы (ParentId, Id), возможно, придется скорректировать для ваших настоящих имен.

Использование:

SET @wantedSubTreeId = 3;
SELECT * FROM test WHERE isSubElement(@wantedSubTreeId,id) = 1 OR ID = @wantedSubTreeId;

Результат:

3   7   k
5   3   d
9   3   f
1   5   a

SQL для создания теста:

CREATE TABLE IF NOT EXISTS `test` (
  `Id` int(11) NOT NULL,
  `ParentId` int(11) DEFAULT NULL,
  `Name` varchar(300) NOT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

insert into test (id, parentid, name) values(3,7,'k');
insert into test (id, parentid, name) values(5,3,'d');
insert into test (id, parentid, name) values(9,3,'f');
insert into test (id, parentid, name) values(1,5,'a');
insert into test (id, parentid, name) values(6,2,'o');
insert into test (id, parentid, name) values(2,8,'c');

EDIT: здесь скрипт проверить его самостоятельно. Это заставило меня изменить разделитель с помощью предопределенного, но он работает.

0
задан southwind 2 March 2019 в 14:16
поделиться

1 ответ

enter image description here На самом деле, я нашел способ правильно масштабировать логотип перед наложением на сюжет. Магический пакет прекрасно работает.

library(magick)
img <- image_read("R-logo.png")
img <- image_scale(img, "50")
0
ответ дан southwind 2 March 2019 в 14:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: