已关闭。此问题需要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的
谢谢你的帮助!:)
不确定如何使用开始设置和结束函数。
1条答案
按热度按时间bqujaahr1#
在MySQL中,您可以通过以下方式指定字段的工作日:
字符串
但是,重要的是要注意,
WEEK
本身不会标识星期,因为它返回的是一年中的星期号,所以星期号可能是2024年、2023年等。因此,您将需要聚合活动用户计数。只要您在WHERE
子句中过滤掉不匹配的项,就可以通过count(*)
完成此操作,或者型
现在,最后一个问题是你是否有“间隙”,也就是说,你没有数据的几周。如果你有间隙,不需要有间隙,那么你可能需要创建记录,可能是一个表或一个临时表,但我倾向于通过应用程序服务器填充间隙。
型
现在,这是聚合您的返回结果,因此无论您在何处引用分组的字段,(例如
SELECT
子句),您需要确保如果任何字段被其自身使用,您可以 Package 一个聚合函数,(GROUP_CONCAT
,AVG
,MIN
,MAX
等),因此具有现在单独不可用的各个字段值的摘要,但是可以通过聚合获得。您还需要确保,如果您有一些值对于一个组中的所有记录都应该是相同的,并且您在分组后需要它们的值,然后将其添加到GROUP BY
子句中,这样MySQL将被显式指示期望它们对于各自的组是唯一的。使用
GROUP BY
子句,您将需要