es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el porcentaje mensual de artículos en stock con una cierta condición, puedes utilizar la función de ventana sum() para calcular la cantidad total de artículos en stock en cada mes, y luego dividir la cantidad de artículos con una condición específica entre el total y multiplicarlo por 100 para obtener el porcentaje. Puedes utilizar la cláusula over en la función sum() para especificar la partición por mes. Luego puedes utilizar una subconsulta para calcular el conteo total de artículos en cada mes y unirla con la consulta principal para calcular el porcentaje. Aquí tienes un ejemplo de consulta:

    SELECT
      to_char(si.created_at, 'YYYY-MM') AS month,
      count(si.id) AS count,
      CASE
        WHEN si.condition_id = 1 THEN 'Nieuw'
        WHEN si.condition_id = 2 THEN 'Als nieuw'
        WHEN si.condition_id = 3 THEN 'Goed'
        WHEN si.condition_id = 4 THEN 'Redelijk'
        WHEN si.condition_id = 5 THEN 'Matig'
        ELSE 'Onbepaald'
      END AS condition,
      count(si.id) * 100.0 / total.total_count AS percentage
    FROM stock_items si
    JOIN (
      SELECT
        to_char(created_at, 'YYYY-MM') AS month,
        count(id) AS total_count
      FROM stock_items
      GROUP BY month
    ) AS total ON to_char(si.created_at, 'YYYY-MM') = total.month
    GROUP BY month, condition, total.total_count
    ORDER BY month DESC, si.condition_id ASC;
    

    En esta consulta, primero obtenemos el conteo de artículos con una condición específica y lo agrupamos por mes y condición. Luego unimos esta consulta con una subconsulta que calcula el conteo total de artículos en cada mes. Utilizamos la palabra clave JOIN para combinar las dos consultas, y especificamos la condición de unión con la palabra clave ON. Luego dividimos el conteo de artículos con una condición específica entre el conteo total y lo multiplicamos por 100 para obtener el porcentaje. Utilizamos la palabra clave AS para asignar un alias a la subconsulta y a la columna de porcentaje. Agrupamos los resultados por mes, condición y conteo total para obtener el resultado deseado. Por último, ordenamos los resultados por mes en orden descendente y condición en orden ascendente.

Comments are closed.