这是我的代码:
WITH
ventes_1er as(
SELECT COUNT(DISTINCT nature_mutation) as nb1
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation>'31/03/2020'),
ventes_2nd as(
SELECT COUNT(DISTINCT nature_mutation) as nb2
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation<='31/03/2020')
SELECT (((nb2-nb1)/(cast(nb2 as decimal(10,2))))*100) as evolution
FROM ventes_2nd,ventes_1er
我在 postgresql 中,我不明白为什么它返回 0.
Ventes_1er=17393 并且有效 Ventes_2nd=16776 它也有效...
我需要找到我的 ventes_1er 和我的 ventes_2nd 之间的变化率,它应该是 3,677% 你能帮我找出问题所在吗?对不起,我是初学者。
我也试过:
SELECT DISTINCT
(((SELECT COUNT(nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation>'31/03/2020') - (
SELECT COUNT(nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation<='31/03/2020'))/
(SELECT COUNT(nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation>'31/03/2020'))*100
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
但它也返回 0
我也试过:
WITH evolution(ventes_1er,ventes_2nd) AS (
VALUES((SELECT COUNT(DISTINCT nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation>'31/03/2020'),(
SELECT COUNT(DISTINCT nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation<='31/03/2020'))
SELECT (((ventes_2nd-ventes_1er)/ventes_1er)*100) as taux_evolution
FROM evolution
但是我有一个错误...
DO $$
DECLARE ventes_1er INT;
DECLARE ventes_2nd INT;
BEGIN
ventes_1er:=(
SELECT COUNT(DISTINCT nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation>'31/03/2020');
ventes_2nd :=(
SELECT COUNT(DISTINCT nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation<='31/03/2020');
SELECT ((ventes_2nd-ventes_1er)/(ventes_1er))*100 as taux_evolution
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
END $$
WITH evolution(ventes_1er,ventes_2nd) AS (
VALUES((SELECT COUNT(DISTINCT nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation>'31/03/2020'),(
SELECT COUNT(DISTINCT nature_mutation)
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN
WHERE date_mutation<='31/03/2020'))
SELECT (((ventes_2nd-ventes_1er)/ventes_1er)*100) as taux_evolution
FROM BIEN
JOIN MUTATION ON MUTATION.ID_BIEN = BIEN.ID_BIEN