WITH
cte1 AS ( SELECT t1.ts, t1.val,
t2.ts ts_before, t2.val val_before,
t3.ts ts_after, t3.val val_after
FROM test t1
JOIN test t2 ON t1.ts >= TIMESTAMP(t2.ts, @delta)
JOIN test t3 ON t1.ts <= TIMESTAMP(t3.ts, @delta) ),
cte2 AS ( SELECT *,
ROW_NUMBER() OVER (PARTITION BY ts ORDER BY ts_before DESC) rn_before,
ROW_NUMBER() OVER (PARTITION BY ts ORDER BY ts_after ASC) rn_after
FROM cte1 )
SELECT ts,
val,
ts_before,
val_before,
ts_after,
val_after,
CASE WHEN val_after = val_before
THEN val_before
ELSE val_before + (val_after - val_before) / TIMESTAMPDIFF(SECOND, ts_after, ts_before) * TIMESTAMPDIFF(SECOND, ts, TIMESTAMP(ts_before, @delta))
END val_approximated
FROM cte2
WHERE ts > '2021-01-02'
AND rn_before = 1
AND rn_after = 1
Не имел дела раньше с оконными функциями в MySQL.
Получается, то сравнение
'hello' == '123'
это
parseInt('hello') == parseInt('123')
так?
И [] == {} аналогично parseInt([]) == parseInt({})?
'hello' == 123
приведёт строку к числу ToNumber('hello') == 123
и получится NaN == 123
→ сравниваем два числа и получаем false
.Number
. FROM ubuntu:latest
RUN apt update && apt install -y openssl
RUN mkdir -p /etc/cert
RUN /bin/bash -c "openssl req -x509 \
-newkey rsa:2048 -nodes -sha256 \
-out /etc/cert/localhost.crt \
-keyout /etc/cert/localhost.key \
-subj '/CN=localhost' \
-extensions EXT \
-config <( \
printf '[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth')"
docker build .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM ubuntu:latest
---> 1318b700e415
Step 2/4 : RUN apt update && apt install -y openssl
---> Using cache
---> e608bba6cb59
Step 3/4 : RUN mkdir -p /etc/cert
---> Using cache
---> b89d4c7495a3
Step 4/4 : RUN /bin/bash -c "openssl req -x509 -newkey rsa:2048 -nodes -sha256 -out /etc/cert/localhost.crt -keyout /etc/cert/localhost.key -subj '/CN=localhost' -extensions EXT -config <( printf '[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth')"
---> Running in a4012f6c4893
Generating a RSA private key
................................................+++++
..+++++
writing new private key to '/etc/cert/localhost.key'
-----
Removing intermediate container a4012f6c4893
---> 6ea49c8d9ada
Successfully built 6ea49c8d9ada
<?php
declare(strict_types=1);
class Ellipsis
{
private string $char;
private int $count;
/**
* @param string $char
* @param int $count
*/
public function __construct(string $char, int $count)
{
$this->char = $char;
$this->count = $count;
}
/**
* @return string
*/
public function getChar(): string
{
return $this->char;
}
/**
* @return int
*/
public function getCount(): int
{
return $this->count;
}
}
class Ellipsisist
{
private Ellipsis $ellipsis;
/**
* @param Ellipsis $ellipsis
*/
public function __construct(Ellipsis $ellipsis)
{
$this->ellipsis = $ellipsis;
}
/**
* @param string $value
* @return string
*/
public function __invoke(string $value): string
{
return str_pad($value, mb_strlen($value) + $this->ellipsis->getCount(), $this->ellipsis->getChar(), STR_PAD_LEFT);
}
}
class EllipsisistFactory
{
/**
* @param string $char
* @param int $count
* @return Ellipsisist
*/
public static function make(string $char, int $count): Ellipsisist
{
return new Ellipsisist(new Ellipsis($char, $count));
}
}
$arr = ['foo', 'bar', 'baz'];
$ellipsisiatedArr = array_map(
EllipsisistFactory::make('.', 3),
$arr
);
var_dump($ellipsisiatedArr);
таймеры как шли так и идут
все данные как были так и есть
И если CryptoJS.SHA512("hello") возвращает корректный хэш строки "hello", то уже i = CryptoJS.SHA512(i) хэширует не строку hello, а инстанс объекта CryptoJS.
Ну и сформулирую вопрос более широко: как мне добиться того, чтобы результат кода исполняемого на C++ был идентичен результату кода исполненного на JS?
const arr = Array.from(
new Set(Array.from(document.querySelectorAll('.shop_name'), n => n.innerText)),
n => ({ name: n })
);
const arr = Object.values(Array.prototype.reduce.call(
document.getElementsByClassName('shop_name'),
(acc, { textContent: name }) => (acc[name] ??= { name }, acc),
{}
));