MYSQL计算每行的唯一值

时间:2016-05-07 16:52:22

标签: mysql

我有mysql数据库结构和值:

name  | x | y | z
------------------
name1 | 1 | 1 | 2
name2 | 2 | 1 | 3 
name3 | 1 | 1 | 1

现在我需要为每一行添加额外的列,其中包含计数器唯一值(x,y,z):

name  | x | y | z | unique
--------------------------
name1 | 1 | 1 | 2 | 2
name2 | 2 | 1 | 3 | 3
name3 | 1 | 1 | 1 | 1

我该怎么做?

2 个答案:

答案 0 :(得分:1)

你可以使用select count distinct

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.elinformaticoenganchado.sergio.crossfighters"
    android:versionCode="1"
    android:versionName="1.0">

    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:name="com.orm.SugarApp">
        <meta-data android:name="DATABASE" android:value="example.db" />
        <meta-data android:name="VERSION" android:value="1" />
        <meta-data android:name="QUERY_LOG" android:value="true" />
        <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="net.elinformaticoenganchado.sergio.crossfighters" />

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".chronometer" />
        <activity android:name=".addPlan" />
    </application>

</manifest>

此处有更多答案&gt; Counting DISTINCT over multiple columns,已经回答了。

答案 1 :(得分:0)

如果您不需要大规模扩展,可以执行此操作

SELECT *, 
(CASE 
 WHEN x=y=z THEN 1
 WHEN x=y OR x=z OR y=z THEN 2
 ELSE 3
END) as `unique`
FROM `table`