Функция MySQL Count не возвращает нужное количество значений для следов Google

Я загрузил трассировки использования кластера Google, которые выполняются в течение 1 месяца, в мою локальную рабочую среду MySQL, чтобы извлечь некоторый анализ данных. Я использую Count() в функции, чтобы вернуть ряд задач с ошибками (event_type in (3,5,7)) и (Job_id and Tasks_index), которые происходят в timestamp canonical_time и machine_id:

https://ibb.co/YPYhmzs

ожидаемый результат с разумным количеством отказов, как в наборе данных Google

функция такая:

DELIMITER $$

CREATE DEFINER=`root`@`127.0.0.1` FUNCTION `FnGetTotalRejectTasks357`(machine_id bigint(20), tm timestamp) RETURNS bigint(20)
    DETERMINISTIC
RETURN (

SELECT COUNT(*)
from
(
SELECT distinct job_id, task_index
 
      from ftacpu.tasksAllevents 
 
where machine_id = machine_id and event_type in (3,5,7)  and canonical_time = tm  
   ) as topF
   
   )

и я использую вызов SQL-запроса:

 select
        e.canonical_time,
        e.machine_id,
        FnGetTotalRejectTasks357(e.machine_id, e.canonical_time) as total_submit_Tasks
        
        from ftacpu.tasksAllevents e 
                 
    group by e.machine_id, e.canonical_time;

И неожиданный вывод:

https://ibb.co/gMnYbHZ

после использования функции Огромное количество значений не такие, как в наборе данных.

но текущий результат показывает больше значений в определенной метке времени, тогда как на самом деле это меньше значений.

что может быть не так с моей функцией? или позвоните по телефону?

не используйте переменные с тем же именем, что и имена столбцов, которые сбивают базу данных

nbk 09.04.2021 21:05

Вы имеете в виду, где machine_id = machine_id? (machine_id bigint (20), временная метка tm)? быть похожим на: например: (mch_Id bigint (20), tm timestamp)? где machine_id = mch_Id

user3436113 09.04.2021 21:13

я имею в виду machine_id = machine_id

nbk 09.04.2021 21:19

спасибо проверим это

user3436113 09.04.2021 21:53
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
4
10
0

Другие вопросы по теме