在显示多个列时使用DISTINCT查找一列的唯一值

时间:2019-03-17 03:36:48

标签: sql-server

我想使用Loader语句来过滤结果表的结果。我正在尝试显示具有独特折扣百分比(<template> <div> <loading-screen :is-loading="isLoading"></loading-screen> ... </div> </template> <script> import Loader from "./components/Loader"; ... export default { components: { 'loading-screen': Loader }, data() { return { isLoading: true } }, mounted () { setTimeout(() => { this.isLoading = false }, 2000) } } </script> )的产品(SELECT DISTINCT)的名称。这样,它只会显示折扣率唯一的产品。

我的代码如下:

ProductName

这将返回一个表;但是,该表在DiscountPercent列中仍具有重复的信息。这就是我要摆脱的。

请记住,我是SQL Server和编码方面的新手。任何帮助将不胜感激!

(我已经多次搜索答案,从其他问题中寻求解决方案;但是,他们的解决方案始终只在select p1.ProductName, p2.DiscountPercent from Products p1 right join (select distinct DiscountPercent from Products) p2 on p1.DiscountPercent = p2.DiscountPercent order by ProductName --I need to have it ordered by ProductName 列中显示我的结果表。)

1 个答案:

答案 0 :(得分:1)

不同地检查完全唯一的记录,即将与其他记录对照firedb.child("users").child(user['localId']).set(data=userInfo)requests.exceptions.HTTPError: [Errno 401 Client Error: Unauthorized for url: https://myproj.firebaseio.com/users/someid.json] { "error" : "Permission denied" } ,并过滤出与两个值都匹配的结果。您的ProductName无法正常工作,因为它会将一个表中的记录与其他表中的记录进行匹配。

以下是基于a similar question的解决方案:

DiscountPercent

基本上,JOIN;WITH a AS ( SELECT ProductName, DiscountPercent, ROW_NUMBER() OVER (PARTITION BY DiscountPercent ORDER BY ProductName ASC) AS RowNumber FROM Products ) SELECT a.ProductName, a.DiscountPercent FROM a WHERE a.RowNumber = 1 中的重复值进行计数。 ROW_NUMBER() OVER (PARTITION BY DiscountPercent ORDER BY ProductName ASC) AS RowNumber告诉查询以找到第一个。