2016-05-17 3 views
0

Извинения за ужасное название, но я не могу придумать лучшего способа объяснить это.Расчет процентного значения времени 0 против 1

У меня есть поле для каждого ID, которое может быть 0 или 1, и изменяется один раз в день в зависимости от активности запаса на складе. То есть В наличии/на складе. Это чисто используется как приблизительный процент для отчетности.

E.g. 10 дней в 1, 90 дней при 0 = 10%

То, что я делаю прямо сейчас, запускает скрипт cron один раз в день, чтобы сохранить текущее значение (с меткой времени) в другой таблице, а затем легко разработать процент сюда.

Это работает, но должен быть более эффективный метод? Например, с 100 000 уникальных идентификаторов это соответствует 26 500 000 строк в год. Вы можете увидеть проблему там.

Я не могу придумать более эффективный способ. Возможно, их нет.

ответ

0

Вы можете запросить его динамически с помощью простого выбора:

select count(if(field_name=1,1,null))/count(*)*100 as percentage_of_one from yourtable 

field_name это поле, которое должно быть 1 для подсчета.

+0

Мои извинения, я не думаю, что мои объяснения были достаточно хорошими ... Таким образом, у меня есть поле для каждого идентификатора, которое может быть 0 или 1, и изменяется один раз в день в зависимости от активности акций в склад. То есть В наличии/на складе. Это чисто используется как приблизительный процент для отчетности. В настоящее время я храню эти значения (с меткой времени) в отдельной таблице, чтобы рассчитать процент, и это работает отлично. Однако с 100 000 уникальными идентификаторами, например, это соответствует 26 500 000 строк в год. Вы можете увидеть проблему там. Я не могу придумать более эффективный способ. –

+0

Как долго ваш отчет должен вернуться? Вам почему-то нужно сохранять отдельные статусы? – Shadow

+0

Чтобы расширить свой предыдущий вопрос: ответ действительно зависит от ваших требований. Если вам нужно иметь возможность сообщать о наличии конкретного продукта в определенный день, возвращаясь в течение года, тогда вы не сможете повторно разработать лучшее решение. Если вам нужно знать процентный запас продуктов на складе из общей суммы продуктов за последний день, вам нужно только сохранить процент. – Shadow

Смежные вопросы