170 похожих чатов

Всем привет, не могу решить задачу, надо найти разницу в

quantity для key 'last'и 'new', уже долго думаю, помогите пожалуйста.
https://onlinephp.io?s=7VTNTttAEL4j5R3mYCl2CRLlmJBUAVwaKYQqJEUojSrX2ZBVjW1210BUIUFR1UP7BH0KRBW1qAVeYf1G3bUd_Nsf9VD10Dl41zPfzM58s7Orj9yJC6UF13tpYRMoM5hYxp5tMuzYsI_YuuPZrE8RoZvE8dy16QY6wiZSSwsQybqFkc1AMYO1Ehuw1FLMUGuU1RreSIDNAov4IHJkWKFaq4JBiDGF1zFMGTkiW9SKgFCPneABrNRKCwksPRSA-H9Hb-vrPYgVUkZBRWDQaFdJmz0bH6oeHmkScegZNsNsmsGULYOysgS8QtPY9Li7vQXoSNDyQlJLY8vuE72rQ0iOrCDcpYM2OxswMag6J4tWksRpeTDDB0icc-DCmt7b1fUO2M6xqsEStDo9vfus2c6Rt9HcC1zzQJyAxEdtdrf7T2FtL6IqNvQ7re0ONNvtv0C2jY7_Ia4bf0pe6qYykrrkUhRZB5IZh6O11KDIQiZT5a3WajH4FEyDmRNQn-snJnKD0VXQfKtl47ad_WoVEeIQNYGqpUEEMY_YMBgmz0mN1shgxg5ibWTvs4nI0pQvhRomvdQgzjFVtWTUwCE5jFIG6d-gvaLlFipDvQFl_pHf8q_8i_-Oz_xz_w2_4rfA76TS_8A_i_WKXwr1TIBm_Br8c_7JP_MvBOROeJ2FAH7Db_z3_tvAE_wLGSmwXUcxL_m3cqUok6kbJcIMMTXlNCRJzdghoCpY0LBcE-2H1Qw_Urm4mGuFEo1DHdK8DRQ8HCwPMz1R5gNRjH-Yw4sBKYauDFOXTwoeiwICh3o4YUGyeVKCugZDEbegdwFrEiBZKzZL-YHnfYT4BiiFr0TeYd6oLcQINnvowLVEzbRa7bsWHovREcPo_TLMPHMY3FM9_IlPkS3bg1NAFkXZvkv5T-S9_BaRqXdovo2eqYDLyOH0Ow%2C%2C&v=8.2.6

2 ответов

32 просмотра

Привет! Для начала, нужно собрать результаты запросов в два разных массива. Затем, после цикла, мы можем вычислить разницу для каждого устройства, если есть таковые. Я модифицировал твой код для того, чтобы это реализовать: public static function getCountUsersGroupByDevice( Client $client, int $siteId, int $audienceId, int $interval ): array { $doubleInterval = $interval * 2; $sql = SELECT device as device, uniq(uid) as quantity, 'last' as key FROM event_stats WHERE siteId = $siteId AND has(audiences, $audienceId) AND timestamp BETWEEN now() - INTERVAL $doubleInterval DAY AND now() - INTERVAL $interval DAY GROUP BY device UNION ALL SELECT device as device, uniq(uid) as quantity, 'new' as key FROM event_stats WHERE siteId = $siteId AND has(audiences, $audienceId) AND timestamp > now() - INTERVAL $interval DAY GROUP BY device; try { $state = $client->select($sql); } catch (\Exception $exception) { Log::error($exception); return []; } $dataSetLength = count($state->rows()); $newData = []; $lastData = []; $result = [ 'title' => 'Количество пользователей сгруппированных по устройствам', 'type' => 'table' ]; for ($i = 0; $i < $dataSetLength; $i++) { $device = $state->rows()[$i][0]; $quantity = $state->rows()[$i][1]; $key = $state->rows()[$i][2]; if ($key == 'new') { $newData[$device] = $quantity; } else { $lastData[$device] = $quantity; } } foreach ($newData as $device => $quantity) { $diff = $quantity - ($lastData[$device] ?? 0); $result[] = [ 'data' => [ 'title' => $device, 'type' => MetricTemplates::Uplift->value, 'data' => [$diff], ], ]; } return $result; } Затестить не могу по понятным причинам Отпишись или подходит решение

Владислав-Саросек Автор вопроса

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта