mysql 包含开始和结束日期的每周盘点[已关闭]

yebdmbv4  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(36)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

两小时前关门了。
Improve this question
我是一个很新的MYSQL,我有一个问题,我的查询,以显示究竟是什么,我需要使用它在PBI。
我有这个查询,我有开始和结束日期。它计算每周的活跃用户数,并返回每周的用户数开始的日期。我需要的是从我选择的开始和结束期间返回一个表,其中包含每周的数据。我在下面附上查询。

SELECT count(DISTINCT k.ID) as amount, won_accepted_date as dataa 
FROM Log_purchases,
     s_clients ak,
     s_bids k 
LEFT JOIN logistic_transport ON (k.auto_id = logistic_transport.transport_id)
WHERE k.bet_won = 1
  AND ak.ID = k.ID
  AND logistic_transport.transport_id IS NOT NULL
  AND k.auto_id = k.auto_id
  AND Log_purchases.company_id = logistic_transport.transport_id
  AND payment_type = '0'
  AND payment_damaged = '0'
  AND payed_for = '1'
  AND fault = '0'
  AND vat_pvm = '0'
  AND vat_compensation = '0'
  AND won_accepted_date >= '2023-09-18'
  AND won_accepted_date <= '2023-09-24'
  AND NOT EXISTS 
    (SELECT d.ID
     FROM Log_purchases,
          s_clients ak2,
          s_bids d
     LEFT JOIN logistic_transport
       ON (d.auto_id = logistic_transport.transport_id)
     WHERE d.bet_won = 1 AND ak2.ID=d.ID
       AND logistic_transport.transport_id IS NOT NULL
       AND d.auto_id=d.auto_id
       AND Log_purchases.company_id = logistic_transport.transport_id
       AND payment_type = '0' AND payment_damaged = '0' AND payed_for = '1' AND fault = '0'
       AND k.ID = d.ID AND vat_pvm = '0' AND vat_compensation='0'
       AND won_accepted_date<'2023-09-18'
     GROUP BY ID)

字符串
Example of what I need
谢谢你的帮助!:)
不确定如何使用开始设置和结束函数。

bqujaahr

bqujaahr1#

在MySQL中,您可以通过以下方式指定字段的工作日:

WEEK(yourfield)

字符串
但是,重要的是要注意,WEEK本身不会标识星期,因为它返回的是一年中的星期号,所以星期号可能是2024年、2023年等。因此,您将需要聚合活动用户计数。只要您在WHERE子句中过滤掉不匹配的项,就可以通过count(*)完成此操作,或者

SUM(
    CASE
        WHEN active = 1 then 1
        ELSE 0
    END
)


现在,最后一个问题是你是否有“间隙”,也就是说,你没有数据的几周。如果你有间隙,不需要有间隙,那么你可能需要创建记录,可能是一个表或一个临时表,但我倾向于通过应用程序服务器填充间隙。

GROUP BY YEAR(yourfield), WEEK(yourfield)


现在,这是聚合您的返回结果,因此无论您在何处引用分组的字段,(例如SELECT子句),您需要确保如果任何字段被其自身使用,您可以 Package 一个聚合函数,(GROUP_CONCATAVGMINMAX等),因此具有现在单独不可用的各个字段值的摘要,但是可以通过聚合获得。您还需要确保,如果您有一些值对于一个组中的所有记录都应该是相同的,并且您在分组后需要它们的值,然后将其添加到GROUP BY子句中,这样MySQL将被显式指示期望它们对于各自的组是唯一的。
使用GROUP BY子句,您将需要

相关问题