gpt4 book ai didi

mysql - 计算不同的元素并只返回一个

转载 作者:行者123 更新时间:2023-12-01 00:49:15 26 4
gpt4 key购买 nike

我有一个表,在名为“数据”的列中包含许多整数

data  |  param

123 1
432 1
123 1
423 2
234 1
423 2

我有一个问题

SELECT data FROM data_table WHERE param=*something* GROUP BY data
ORDER BY rand() LIMIT 1

从表中返回一个随机的不同整数。但我还需要获得我从中选择的整数总数。我试过:

SELECT DISTINCT(data) AS data, COUNT(DISTINCT(data)) as count FROM
data_table WHERE param=*something* ORDER BY rand() LIMIT 1

这会返回从中选择数据的正确数字,但返回的数据 不是随机的 - 它始终是同一行。因此,我需要获取在应用 WHERE 之后选择了 rand() 的行数。所以对上表进行查询应该返回:

query WHERE param='1':
data count
123 3
query WHERE param='1':
data count
432 3
query WHERE param='1':
data count
234 3
query WHERE param='2':
data count
423 1

最佳答案

这行得通。我通常不建议在选择器中放置查询,因为它会计算返回的每一行。但是在这种情况下,您只返回一行,所以没关系。

select 
count(distinct data) as cnt,
(SELECT data FROM data_table GROUP BY data
WHERE param='xxx'
ORDER BY rand() LIMIT 1) as random
from data_table
WHERE param='xxx'

查看此 SQL Fiddle看看它在没有 where 语句的情况下工作。

关于mysql - 计算不同的元素并只返回一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17816555/

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