gpt4 book ai didi

mysql - 如何统计和比较同一张表中列的值

转载 作者:行者123 更新时间:2023-11-30 22:42:26 25 4
gpt4 key购买 nike

我需要创建一个程序,通过使用“P”和“U”计算比率来计算状态,然后将其与其他用户进行比较,获取该用户 ID 并在另一个表中找到它并写入所有两个表中的用户信息。我从 Java 应用程序调用该过程。

Table Rezervacija
id | SifKorisnikPK | Status
1 | 1 | 'P'
2 | 1 | 'U'
3 | 1 | 'U'
4 | 2 | 'U'
5 | 2 | 'P'
6 | 2 | 'P'
7 | 2 | 'P'
8 | 2 | 'P'
9 | 3 | 'U'
10 | 3 | 'U'
11 | 3 | 'P'
12 | 3 | 'P'
13 | 3 | 'P'
14 | 3 | 'P'

所以 ID 为 2 的用户是最差的用户,因为有 4 个 P,还有一个 U,所以他的比率是 3 P。然后它应该转到 Korisnik 表并返回 ID 为 2 的用户的所有信息

我试过这个但是不能得到任何返回值

CREATE PROCEDURE sp_getBadPremiumUsers 
AS
BEGIN
DECLARE @BrLr int
DECLARE @BrDr int

SELECT @BrLr = (SELECT COUNT(*) FROM Rezervacija A
INNER JOIN Rezervacija B
ON A.SifKorisnikPK = B.SifKorisnikPK
WHERE A.Status = 'P')

SELECT @BrDr = (SELECT COUNT(*) FROM Rezervacija A
INNER JOIN Rezervacija B
ON A.SifKorisnikPK = B.SifKorisnikPK
WHERE A.Status = 'U')

SELECT * INTO #PremiKoris FROM Korisnik
INNER JOIN PremiumKorisnik
ON SifKorisnik = SifKorisnikPK
ALTER TABLE #PremiKoris
DROP COLUMN Password
SELECT * FROM #PremiKoris
WHERE @BrLr > @BrDr

DROP TABLE #PremiKoris
END
GO

最佳答案

你可以让更糟糕的用户使用:

select r.SifKorisnikPK
from Rezervacija r
where status = 'P'
group by SifKorisnikPK
order by count(*) desc
limit 1;

然后您可以在查询中使用它来获取更多信息:

select k.*
from PremiumKorisnik k join
(select r.SifKorisnikPK
from Rezervacija r
where status = 'P'
group by SifKorisnikPK
order by count(*) desc
limit 1
) r
on r.SifKorisnikPK = k.SifKorisnikPK

这会在一个查询中完成您所描述的您想做的事情。

关于mysql - 如何统计和比较同一张表中列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30744138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com